15
}
16
17 @Override
18 public void onOpen(SQLiteDatabase db) {
19
super.onOpen(db);
20
// TODO
每次成功打开数据库后首先被执行
21
}
22 }
接下来讨论具体如何创建表、插入数据、删除表等等。调用 getReadableDatabase() 或
getWriteableDatabase()
方法,你可以得到 SQLiteDatabase 实例,具体调用那个方法,取决
于你是否需要改变数据库的内容:
23 db=(new DatabaseHelper(getContext())).getWritableDatabase();
24 return (db == null) ? false : true;
上面这段代码会返回一个 SQLiteDatabase 类的实例,使用这个对象,你就可以查询或者
修改数据库。
当你完成了对数据库的操作(例如你的 Activity
已经关闭),需要调用 SQLiteDatabase
的 Close() 方法来释放掉数据库连接。
创建表和索引
为了创建表和索引,需要调用 SQLiteDatabase
的 execSQL()
方法来执行 DDL 语句。如果
没有异常,这个方法没有返回值。
例如,你可以执行如下代码:
25 db.execSQL("CREATE TABLE mytable (_id INTEGER PRIMARY KEY
26
AUTOINCREMENT, title TEXT, value REAL);");
这条语句会创建一个名为 mytable
的表,表有一个列名为 _id,并且是主键,这列的值是
会自动增长的整数(例如,当你插入一行时,SQLite 会给这列自动赋值),另外还有两
列:title(
字符 )
和 value(
浮点数 )
。 SQLite 会自动为主键列创建索引。
通常情况下,第一次创建数据库时创建了表和索引。如果你不需要改变表的 schema,不
需要删除表和索引 .
删除表和索引,需要使用 execSQL()
方法调用 DROP INDEX 和
DROP TABLE 语句。
给表添加数据
上面的代码,已经创建了数据库和表,现在需要给表添加数据。有两种方法可以给表添加
数据。
像上面创建表一样,你可以使用 execSQL()
方法执行 INSERT, UPDATE, DELETE 等语句
来更新表的数据。execSQL()
方法适用于所有不返回结果的 SQL 语句。例如:
27 db.execSQL("INSERT INTO widgets (name, inventory)"+
28 VALUES ('Sprocket', 5)");
另一种方法是使用 SQLiteDatabase
对象的 insert(), update(), delete()
方法。这些方法把 SQL
语句的一部分作为参数。示例如下:
29 ContentValues cv=new ContentValues();
30 cv.put(Constants.TITLE, "example title");
31 cv.put(Constants.VALUE, SensorManager.GRAVITY_DEATH_STAR_I);
32 db.insert("mytable", getNullColumnHack(), cv);
update
()方法有四个参数,分别是表名,表示列名和值的 ContentValues 对象,可选的
找软件资料,就到一览软件文库
http://wk.yl1001.com/rj/