构造函数:
java 代码:
public DbHelper(Context context, String name, CursorFactory factory, int version){
super(context, name, factory, version);
}
此函数中的参数
name 就是数据库名称,也就是数据库文件名; version 则从 1 开始,
当将来数据库的表格以及字段发生变化时,用户可以提高此
version,从而触发 onUpgrade()
达到旧数据升级的效果。在
onCreate 函数中创建表格:
java 代码:
public void onCreate(SQLiteDatabase db) { StringBuilder sql = new StringBuilder();
sql.append("CREATE TABLE "); sql.append(TBL_NAME);
sql.append(" ("); sql.append(FIELD_ID + " TEXT PRIMARY KEY NOT NULL, ");
sql.append(FIELD_NAME + " TEXT, "); sql.append(FIELD_AGE + " INTEGER");
sql.append(");"); db.execSQL(sql.toString());
}
onCreate 函数只会在数据库第一次创建时调用,所以此处适合做一些数据库初始化操
作。上面的函数最终实际上效果是执行了
SQL 语句:
java 代码:
CREATE TABLE mytable (id TEXT PRIMARY KEY NOT NULL, name TEXT, age
INTEGER);
向表格中添加数据有两种方式可以向表格中添加数据,一种是通过
SQLiteDatabase 提
供的
execSQL 函数直接执行 SQL 指令; 一种是通过 SQLiteDatabase 提供的 insert 函数,此
函数把
SQL 语句进行了封装方便用户使用。
通过
execSQL("INSERT INTO mytable VALUES('idStr', 'nameStr', 20);");可以插入一条记
录,
当插入记录出错时会抛出异常需要处理。
通 过
insert 函 数 : insert 函 数 需 要 一 个 ContentValues 类 型 的 值 , 此 类 型 类 似 于
hashmap,一个 key,一个值配成一对。key 就是字段名。
java 代码:
ContentValues v = new ContentValues(); v.put("id", "101");
v.put("name", "user 101"); v.put("age", 44);
mDb.insert("mytable", "null", v);
如果
v 中的 key 没有完全的指定所有字段,比如少 name 或者少 id,那么记录能否被成