SQLiteOpenHelper数据库打开连接帮助类:用于创建、打开、管理数据。
一、帮助类实现:
public class SqliteDBConnect extends SQLiteOpenHelper { //构造函数:NotePad:准备创建或连接的数据库名称,但构造时并不创建和连接 public SqliteDBConnect(Context context) { super(context, "NotePad", null, 1); } //带数据库名称和数据库版本的构造函数 public SqliteDBConnect(Context context,String name,int version) { //name:数据库名称;version:数据库版本 super(context, name, null, version); } //当数据库创建的时候执行:创建表 @Override public void onCreate(SQLiteDatabase db) { db.execSQL("create table note(noteId Integer primary key,noteName varchar(20),noteTime varchar(20),noteContent varchar(400))"); } //如果数据库存在,但是版本不一样就调用onUpgrade(),数据库升级的时候调用 @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } }
1、创建一个帮助类,在构造函数里指明要创建或要打开的数据库文件名:该数据库将建在包目录下
2、实现创建函数和更新函数
二、使用帮助类,进行数据库创建、或打开
//定义一个数据库连接对象 private SqliteDBConnect sd; String name ="NotePad" int nVersion=1; //根据数据库名称和版本号构造数据库帮助对象 sd = new SqliteDBConnect(MainActivity.this,name,nVersion); //当调用这个函数时,如果数据库没有创建则,创建数据库,并调用onCreat函数创建表 //如果数据库已经创建,看版本号是否同已经建的一致,若不一致,则调用更新函数onUpgrade, //可以对数据库里表进行删除、修改、新增等操作 SQLiteDatabase sdb = sd.getReadableDatabase(); // 从数据库中查询数据,按升序排列 Cursor c1 = sdb.query("note", new String[] { "noteId", "noteName", "noteTime" }, null, null, null, null, "noteId asc");
说明:调用SQLiteOpenHelper的getReadableDatabase和getWriteableDatabase函数时:
1、如果数据库没创建,则根据构造函数里的数据库名创建数据库,创建完成后,调用它的onCreate函数创建表。
2、如果数据已经创建,判断构造函数里的传递的版本号是否一致,如果一样则什么也不做。
3、如果版本不一致,则调用它的onUpgrade函数,在次函数里可以删除、新增、修改表。