10
super.onOpen(db); // TODO 每次成功打开数据库后首先被执行
11
} }
接下来讨论具体如何创建表、插入数据、删除表等等。调用
getReadableDatabase() 或
getWriteableDatabase() 方法,你可以得到 SQLiteDatabase 实例,具体调用那个方法,取决
于你是否需要改变数据库的内容:
12
db=(new DatabaseHelper(getContext())).getWritableDatabase(); return (db == null) ?
false : true;
上面这段代码会返回一个
SQLiteDatabase 类的实例,使用这个对象,你就可以查询或
者修改数据库。
当 你 完 成 了 对 数 据 库 的 操 作 ( 例 如 你 的
Activity 已 经 关 闭 ) , 需 要 调 用
SQLiteDatabase 的 Close() 方法来释放掉数据库连接。
创建表和索引
为了创建表和索引,需要调用
SQLiteDatabase 的 execSQL() 方法来执行 DDL 语句。如
果没有异常,这个方法没有返回值。
例如,你可以执行如下代码:
13
db.execSQL("CREATE TABLE mytable (_id INTEGER PRIMARY KEY
AUTOINCREMENT, title TEXT, value REAL);");
这条语句会创建一个名为
mytable 的表,表有一个列名为 _id,并且是主键,这列的值
是会自动增长的整数(例如,当你插入一行时,
SQLite 会给这列自动赋值),另外还有两
列:
title( 字符 ) 和 value( 浮点数 )。 SQLite 会自动为主键列创建索引。
通常情况下,第一次创建数据库时创建了表和索引。如果你不需要改变表的
schema,
不需要删除表和索引
. 删除表和索引,需要使用 execSQL() 方法调用 DROP INDEX 和
DROP TABLE 语句。
给表添加数据
上面的代码,已经创建了数据库和表,现在需要给表添加数据。有两种方法可以给表添
加数据。
像上面创建表一样,你可以使用
execSQL() 方法执行 INSERT, UPDATE, DELETE 等语
句来更新表的数据。
execSQL() 方法适用于所有不返回结果的 SQL 语句。例如:
14
db.execSQL("INSERT INTO widgets (name, inventory)"+ VALUES ('Sprocket', 5)");
另一种方法是使用
SQLiteDatabase 对象的 insert(), update(), delete() 方法。这些方法把