Android 数据库之 SQLite
一、数据存储
Android 平台进行数据存储有五大方式,分别如下:
1、 使用
SharedPreferences
存储数据;2、 文件
File
存储数据;3、 使用
SQLite
存储数据【轻量级嵌入式数据库引擎】;4、 使用
ContentProvider
存储数据【抽象接口,提供外部应用调用】;5、 网络
Network
存储数据。
二、简介
SQLite
是轻量级嵌入式数据库引擎,它支持SQL
语言,并且只利用很少的内存就有很好的性能。
- 轻量级
SQLite 和 C/S 模式的数据库软件不同,它是进程内的数据库引擎,因此不存在数据库的客户端和服务器。
使用SQLite 一般只需要带上它的一个动态 库,就可以享受它的全部功能。
- 单一文件
数据库中所有的信息(比如表、视图、触发器、等)都包含在一个文件内。
这个文件可以copy到其它目录或其它机器上,也照用不误。
- 跨平台
支持主流操作系统,同时支持Android,WindowsMobile等系统。
- 内存数据库
为了避免频繁读写文件数据库带来性能损耗,SQLite 支持内存数据库。注意:
1、对于insert、select操作,在内存数据库中完成;
2、对于delete、update操作,需要同时访问内存、文件数据库;
2、定时将内存数据库中的内容flush到文件数据库
三、示例
四、代码
// 增
public void insert(SimpleEntity entity) {
SQLiteDatabase database = mSimpleEntityOpenHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("_id", entity.get_id());
values.put("simpleString", entity.getSimpleString());
database.insert(TABLE_NAME, null, values);
database.close();
}
// 删
public void delete(String id) {
SQLiteDatabase database = mSimpleEntityOpenHelper.getWritableDatabase();
database.delete(TABLE_NAME, "_id = ?", new String[]{id});
database.close();
}
// 改
public void update(String id, String simpleString) {
SQLiteDatabase database = mSimpleEntityOpenHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("simpleString", simpleString);
database.update(TABLE_NAME, values, "_id = ?", new String[]{id});
database.close();
}
// 查
public List<SimpleEntity> queryAll() {
SQLiteDatabase database = mSimpleEntityOpenHelper.getWritableDatabase();
Cursor cursor = database.query(TABLE_NAME, null, null, null, null, null, "_id desc");
List<SimpleEntity> list = new ArrayList<>();
while(cursor.moveToNext()) {
SimpleEntity bean = new SimpleEntity(cursor.getLong(0), cursor.getString(1));
list.add(bean);
}
cursor.close();
database.close();
return list;
}