我无法理解Android onUpgrade
中SQLiteOpenHelper
方法的用法以及该newVersion
参数的用途。
假设我有以下课程:
public class MySQLiteOpenHelper extends SQLiteOpenHelper {
private static final String DB_FILE_NAME = "mydatabase.db";
private static final int DB_VERSION = 1;
public MySQLiteOpenHelper(Context context) {
super(context, DB_FILE_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
// Create the tables for version 1
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int oldVersion, int newVersion) {
}
}
现在我需要新版本的数据库时,可以将DB_VERSION
增至2
,替换CREATE TABLE
中的onCreate()
代码并编写新的{{1 }}:
onUpgrade()
到目前为止很好,现在我更新另一个时间:将 @Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int oldVersion, int newVersion) {
// Do stuff to upgrade from 1 to 2
}
增至DB_VERSION
,替换3
中的CREATE TABLE
代码并附加内容onCreate()
:
onUpgrade()
如果我错误地理解了用法,请纠正我,但这是我的问题:
如果一切正常, @Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int oldVersion, int newVersion) {
switch (oldVersion) {
case 1:
// Do stuff to upgrade from 1 to 2
case 2:
// Do stuff to upgrade from 2 to 3
}
}
需要做什么??我无法想到一个用例,在这种情况下我们可以假设Version-4-Database-Helper可以升级Version-2-数据库到4以外的任何版本!?