SQLiteOpenHelper的oncreate方法 和 onUpgrade方法
onCreate方法(必须实现的方法)
当调用getReadableDatabase或getWriteableDatabase方法 第一次创建数据库的时候会执行这个方法
作用: 在这个方法中做创建表 和初始化数据的操作
@Override public void onCreate(SQLiteDatabase db) { //适合做创建表 初始化数据的操作 db.execSQL("create table info (_id integer primary key autoincrement, name varchar(20),phone varchar(20))"); }
onUpgrade方法(必须实现的方法)
当调用getReadableDatabase或getWriteableDatabase方法时 如果数据库版本号变大 则会调用这个方法
作用: 在这个方法中做数据库或表结构修改的操作 比如给表添加字段 或给数据库增加新的表
@Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { //通过oldVersion 和newVersion 可以判断当前版本号和最新的版本号 //真实开发环境可能会针对不同的数据库版本做不同的操作 db.execSQL("alter table info add age integer"); }
onDowngrade方法(可选)
当调用getReadableDatabase或getWriteableDatabase方法时 如果数据库版本号变小 则会调用这个方法
作用: 处理数据库版本降级的操作 如果不重写这个方法 则默认数据库降级会抛异常
@SuppressLint("NewApi")
@Override public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) { //处理数据库降级的需求 注意 super.onDowngrade 一定要删掉 否则如果数据库降级依然会抛异常 //super.onDowngrade(db, oldVersion, newVersion); //一般很少做数据库降级的操作 不一定要实现 }
注意 : onCreate onUpgrade 由系统调用 不需要手动调用