SQLite是一款满足ACID特性的具有完备功能的关系数据库系统,由于设计目标为轻量级、开源、支持嵌入式使用,因此目前已经在嵌入式设备领域广泛采用,其运行需要系统资源非常少,在嵌入式设备中可能只需要几百KB的内存就够了。
SQLite对主流的变成语言支持的也很好,C# PHP Java等,同时还支持ODBC接口。另外SQLite的性能也是一流的,在一般应用情况下,其处理速度比MySQL、PostgreSQL这两款著名的开源数据库管理系统都快。
虽然SQLite占用的资源非常少,特性与服务器级数据库相比却丝毫不差,这也是SQLite能够收到android系统青睐的主要原因,其部分特性如下:
1 最大可已支持2TB的数据文件
2 占用资源少,一般占用250KB左右
3 API非常简单,易于使用
4 没有任何的依赖,是独立的
5 源代码完全开放,可以用于任何用途
Android系统中很多的用户数据都是存储在SQLite数据库中的,如联系人信息,通话记录,短信等,由此可见SQLite对于Android的重要性。
Android 下必须用到android.database.sqlite包下的SQLiteDataBase类,该类提供了对SQLite数据库进行基本的所有重要方法。
创建数据库:
SQLiteDataBase sld = SQLiteDataBase.openDataBase("data/data/<包名>/mydb",//数据库所在路径
null,//游标工厂,默认为null
SQLiteDataBase.OPEN_READWRITE|
SQLiteDataBase.CREATE_IF_NECESSARY/模式为读写,不存在则创建
);
关闭数据库:
sld.close();
创建数据表:
String sql = "create table if not exists student ( sno var(5), stuname varchar(20), sage integer, sclass char(5) )";
sld.execSQL(sql);
插入数据:
String sql = "insert student values ('001', 'Android', 22, '3')";
sld.execSQl(sql);
更新数据:
String sql = "update student set sage = 20 where sno = '001' ";
sld.execSQL(sql);
查询数据:
String sql = "select * from student where sage > ?";
Cursor cursor = sld.rawQuery(sql , new String [] { "20" } );
while(cursor.moveToNext()) { //若记录存在
String sno = cursor.getString(0);
String sname = cursor.getString(1);
int sage = cursor.getInt(2);
String sclass = cursor.getString(3);
}
cursor.close(); // 关闭cursor
删除数据:
String sql = "delete from student";
sld.execSQL(sql);