当前位置: 代码迷 >> Android >> Android sqlite数据库版本更改
  详细解决方案

Android sqlite数据库版本更改

热度:81   发布时间:2023-08-04 11:02:53.0

我有一个带有数据库的应用程序,在新的应用程序版本中,必须更改数据库架构。

新旧版本应在代码的何处添加? 新版本将如何与旧版本比较数据库并进行更改。

请帮我解决一下这个。

Override onUpgrade method in SQLiteOpemHelper class.

@Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // TODO Auto-generated method stub
        Log.d("TAG", "ugrade called");
        if (newVersion > oldVersion) {
            db.execSQL("DROP TABLE IF EXISTS " + SchoolCode.CODE_LIST_TABLE);
            // db.execSQL("DROP TABLE IF EXISTS " + ParentTable.PARENT_TABLE);
            db.execSQL("DROP TABLE IF EXISTS "
                    + PreferenceTable.PREFERENCE_LIST_TABLE);
            db.execSQL("DROP TABLE IF EXISTS " + ParentTable.PARENT_TABLE);
            onCreate(db);
        }

    }
//first DATABASE_VERSION add 1,bigger than your old version 
private static final int DATABASE_VERSION = 2;
public ExpenseDBHelper(Context context) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
    // TODO Auto-generated constructor stub
}

@Override
public void onUpgrade(SQLiteDatabase paramSQLiteDatabase, int oldVersion,
        int newVersion) {
    // TODO Auto-generated method stub

    if (oldVersion == 1) {
        // old version database ,you can upgrade data here
     }

    if (newVersion == 2) {
        // new version database ,you can add data or table here
     }


}
  相关解决方案