background image

构造函数:

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,那么记录能否被成