每日日报

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 由系统调用 不需要手动调用

原文地址:https://www.cnblogs.com/zhukaile/p/14836059.html