在虚类SQLiteOpenHelper的构造函数中有一个参数叫做version(如下图)
public SQLiteOpenHelper(Context context, String name, CursorFactory factory, int version) {
this(context, name, factory, version, null);
}
我想知道版本的含义是什么?有人可以帮我吗?
最佳答案
它是您随应用程序一起提供的数据库版本。所以将来如果你想添加一个表或删除一个列或任何与以前的数据库版本不同的东西。这个版本号会派上用场。
这是我如何在我的应用程序升级时操纵数据库的示例: 该方法由框架定义,onUpgrade()
类级别变量:
private static final int DATABASE_VERSION = 4;
检查当前版本:
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
if (oldVersion < 2) {
db.execSQL(DATABASE_CREATEX);
}
if (oldVersion < 3) {
db.execSQL(DATABASE_CREATEC);
}
if (oldVersion < 4) {
final String ALTER_TBL = "ALTER TABLE " + DATABASE_TABLE1
+ " ADD COLUMN Vcost text;";
final String ALTER_TBL1 = "ALTER TABLE " + DATABASE_TABLE1
+ " ADD COLUMN Vmedicine text;";
db.execSQL(ALTER_TBL);
db.execSQL(ALTER_TBL1);
final String ALTER_TBL2 = "ALTER TABLE " + DATABASE_TABLE2
+ " ADD COLUMN Dcost text;";
final String ALTER_TBL3 = "ALTER TABLE " + DATABASE_TABLE2
+ " ADD COLUMN Dmedicine text;";
db.execSQL(ALTER_TBL2);
db.execSQL(ALTER_TBL3);
}
}
因此它会根据数据库的所有版本进行检查,并根据设备上存在的当前版本进行操作。
关于android - Android抽象类SQLiteOpenHelper中的version是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20879392/