虚拟类SQLiteOpenHelper的构造函数中有一个名为version的参数(如下所示)
public SQLiteOpenHelper(Context context, String name, CursorFactory factory, int version) {
this(context, name, factory, version, null);
}
我想知道的是版本的含义是什么?有人可以帮我吗?
答案 0 :(得分:1)
它随应用程序一起提供的数据库版本。因此,将来如果要添加表或删除列或与先前数据库版本不同的任何内容。这个版本号将会派上用场。
这是我在升级应用程序时如何编写数据库的示例: 该方法由框架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);
}
}
因此它会根据数据库的所有版本进行检查,并根据设备上的当前版本进行操作。
答案 1 :(得分:0)
它是您对数据库进行版本化的一种方式,这就是为什么您还需要覆盖onUpgrade方法来处理数据库升级的原因。因此,假设您使用SQLite数据库启动应用程序,然后再更改表格。然后,您将增加数据库版本,当应用程序更新时,将执行onUpgrade方法。
答案 2 :(得分:0)
版本:
数据库的编号(从1开始);如果数据库较旧,则使用onUpgrade(SQLiteDatabase,int,int)来升级数据库;如果数据库较新,则将使用onDowngrade(SQLiteDatabase,int,int)降级数据库
有关详细信息,请访问this