目录
(一)SQLite介绍
SQLite 是一款轻型的数据库,一个类似Access的轻量级数据库系统,但是更小、更快、容量更大,并发更高,遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。
(二)SQLite的使用
1.SQLiteOpenHelper抽象类
在Android系统,提供了一个SQLiteOpenHelper的抽象类,必须继承它才能使用,它是通过对数据库版本进行管理来实现前面提出的需求。
为了实现对数据库版本进行管理,SQLiteOpenHelper类提供了两个重要的方法,分别是onCreate(SQLiteDatabase db)和onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion),onCreate()方法在第一次使用软件时被调用,生成数据库表及初始化数据;onUpgrade()方法在手机软件更新时会被调用,可改变版本号。
2.SQLiteDatabase类操作SQLite数据库
在Android系统中,提供了一个SQLiteDatabase的类,该类封装了一些操作数据库的API,使用该类可以完成对数据进行添加(Create)、查询(Retrieve)、更新(Update)和删除(Delete)操作。可调用SQLiteDatabase中的execSQL()方法执行insert、delete、update和CREATE TABLE相关的SQL语句; rawQuery()方法用于执行select语句。
(三)数据库实例
创建一个DatabaseHelper类继承SQLiteOpenHelper,并重写onCreate()和onUpgrade()方法
//创建数据库时,调用此方法
@Override
public void onCreate(SQLiteDatabase db) {
//创建一个表
db.execSQL("create table student(id integer, name char(10), age integer, grade float)");
}
//数据库升级时调用此方法
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
在MainAcivity中声明一个SQLiteDatabase对象,用于创建数据库对象
private DatabaseHelper databaseHelper; //用于创建帮助器对象
private SQLiteDatabase db; //用于创建数据库对象
public void createDatabase(View view) {
databaseHelper = new DatabaseHelper(context, name, null, version);
db = databaseHelper.getWritableDatabase();
}
执行添加操作,调用SQLiteDatabase中的execSQL()方法,第一个参数时sql语句,第二个参数时sql语句中占位符参数的值,数组顺序与占位符对应
db.execSQL("insert into student(id, name, age, grade) values(?, ?, ?, ?, ?)", new Object[]{1230001, "张三", 17, 75});
执行删除操作,调用SQLiteDatabase中的execSQL()方法,第一个参数时sql语句,第二个参数时sql语句中占位符参数的值,数组顺序与占位符对应
db.execSQL("delete from Student where name = ?", new Object[]{"李华"});