在我们Android的开发过程中,很多时候需要用到数据库的知识,今天我们就来介绍一下Android的数据存储之SQLite数据库的存储。
我们先来回顾一下对数据库的操作...
-------------------------------------------------分割线----------------------------------------------------------
SQLite
建表增、删、改、查
一、建表
CREATE TABLE USER ( _ID Intger autoincrement , NAME TEXT ,PASSWORD TEXT);
二、添加
INSERT INTO USER VALUES(1,"张三","123");
INSERT INTO USER VALUES(2,"张三","123");
三、删除
DELETE FROM USER WHERE _ID=1;
四、修改
UPDATE USER SET NAME='李四' WHERE _ID=1;
五、查询
SELECT * FROM USER;
SELECT * FROM USER WHERE NAME="张三";
SELECT * FROM USER WHRE NAME LIKE "%张%" ;
过滤
SELECT DISTINCT NAME FROM USER;
COUNT(字段名|*);
MAX(字段名)
MIN(字段名)
AVG(字段名)
二、 SQLiteOpenHelper
SQliteOpenHelper 是一个抽象类,来管理数据库的创建和版本的管理。要使用它必须实
现它的 nCreate(SQLiteDatabase), onUpgrade(SQLiteDatabase, int, int)方法
常用方法说明
①onCreate():当第一次运行时调用此方法,如果数据库已存在则不调用,不存在则调用,一
般写一些创建数据库的语句
②onUpgrade():当数据库版本升级后会调用此方法,版本号从 1 开始,然后 2,3...,一般会执
行删除表等操作
③onDowngrade():当数据库版本降级后调用此方法
④onOpen():当打开数据库后会调用此方法
三、 SQLiteDatabase
一、引入
数据库创建的问题解决了,接下来就该使用数据库实现应用程序功能的时候了。基
本的操作包括创建、读取、更新、删除,即我们通常说的 CRUD ( Create, Read, Update, Delete)。
在实现这些操作的时候,我们会使用到两个比较重要的类 SQLiteDatabase 类和 Cursor 类。
二、创建表
1, execSQL(String sql):执行一条 sql 语句,且执行操作不能为 SELECT
因为它的返回值为 void,所以推荐使用 insert、 update 方法等
2., execSQL (String sql,Object[] bindArgs)
sql:执行一条 sql 语句
bindArgs:为 sql 语句中的?赋值
三、添加数据
1、 execSQL(String sql)
2、使用对象的 insert 方法
ContentValues values = new ContentValues();
values.put(USERNAME, user.getUsername());
values.put(PASSWORD, user.getPassword());
db.insert(TABLE_NAME, null, values);
参数:
table:数据库中的表名
nullColumnHack:指定默认插入字段,为 null 时能插入数据
values:表示插入字段所对应的值,使用 put 方法
四、删除数据
1、 execSQL(String sql)
2、使用对象的 delete 方法
String whereClaues="_id=?";
String [] whereArgs={String.valueOf(id)};
//db.delete(TABLE_NAME, "_id="+id, null);
db.delete(TABLE_NAME, whereClaues, whereArgs);
参数
table:数据库的表名
whereClause:where 子句,比如:_id=?
whereArgs:where 子句中?的值
五、修改数据
1、 execSQL(String sql)
2、使用对象的 delete 方法
ContentValues values = new ContentValues();
values.put(USERNAME, user.getUsername());
values.put(PASSWORD, user.getPassword());
String whereClaues="_id=?";
String [] whereArgs={String.valueOf(user.getId())};
db.update(TABLE_NAME, values, whereClaues, whereArgs);
参数
table:数据库的表名
values:代表要修改的值,修改方法还是 put(key,values)
一、建表
CREATE TABLE USER ( _ID Intger autoincrement , NAME TEXT ,PASSWORD TEXT);
二、添加
INSERT INTO USER VALUES(1,"张三","123");
INSERT INTO USER VALUES(2,"张三","123");
三、删除
DELETE FROM USER WHERE _ID=1;
四、修改
UPDATE USER SET NAME='李四' WHERE _ID=1;
五、查询
SELECT * FROM USER;
SELECT * FROM USER WHERE NAME="张三";
SELECT * FROM USER WHRE NAME LIKE "%张%" ;
过滤
SELECT DISTINCT NAME FROM USER;
COUNT(字段名|*);
MAX(字段名)
MIN(字段名)
AVG(字段名)
二、 SQLiteOpenHelper
SQliteOpenHelper 是一个抽象类,来管理数据库的创建和版本的管理。要使用它必须实
现它的 nCreate(SQLiteDatabase), onUpgrade(SQLiteDatabase, int, int)方法
常用方法说明
①onCreate():当第一次运行时调用此方法,如果数据库已存在则不调用,不存在则调用,一
般写一些创建数据库的语句
②onUpgrade():当数据库版本升级后会调用此方法,版本号从 1 开始,然后 2,3...,一般会执
行删除表等操作
③onDowngrade():当数据库版本降级后调用此方法
④onOpen():当打开数据库后会调用此方法
三、 SQLiteDatabase
一、引入
数据库创建的问题解决了,接下来就该使用数据库实现应用程序功能的时候了。基
本的操作包括创建、读取、更新、删除,即我们通常说的 CRUD ( Create, Read, Update, Delete)。
在实现这些操作的时候,我们会使用到两个比较重要的类 SQLiteDatabase 类和 Cursor 类。
二、创建表
1, execSQL(String sql):执行一条 sql 语句,且执行操作不能为 SELECT
因为它的返回值为 void,所以推荐使用 insert、 update 方法等
2., execSQL (String sql,Object[] bindArgs)
sql:执行一条 sql 语句
bindArgs:为 sql 语句中的?赋值
三、添加数据
1、 execSQL(String sql)
2、使用对象的 insert 方法
ContentValues values = new ContentValues();
values.put(USERNAME, user.getUsername());
values.put(PASSWORD, user.getPassword());
db.insert(TABLE_NAME, null, values);
参数:
table:数据库中的表名
nullColumnHack:指定默认插入字段,为 null 时能插入数据
values:表示插入字段所对应的值,使用 put 方法
四、删除数据
1、 execSQL(String sql)
2、使用对象的 delete 方法
String whereClaues="_id=?";
String [] whereArgs={String.valueOf(id)};
//db.delete(TABLE_NAME, "_id="+id, null);
db.delete(TABLE_NAME, whereClaues, whereArgs);
参数
table:数据库的表名
whereClause:where 子句,比如:_id=?
whereArgs:where 子句中?的值
五、修改数据
1、 execSQL(String sql)
2、使用对象的 delete 方法
ContentValues values = new ContentValues();
values.put(USERNAME, user.getUsername());
values.put(PASSWORD, user.getPassword());
String whereClaues="_id=?";
String [] whereArgs={String.valueOf(user.getId())};
db.update(TABLE_NAME, values, whereClaues, whereArgs);
参数
table:数据库的表名
values:代表要修改的值,修改方法还是 put(key,values)