软件升级当然会牵扯到数据库的升级,对于一个项目来说,升级数据库最低要求就是保证原始数据的保留
SQLiteOpenHelper是数据库管理时最方便的助手,其中有两大方法:
//创建数据库,第一次安装时调用
@Override
public void onCreate(SQLiteDatabase db) {
}
//数据库升级,此功能在程序升级时,如果数据库版本变化时调用
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
下面主要说明用于升级的onUpgrade方法里的代码
一、用ALTER TABLE添加新字段
这种方式只适合于往表里加字段(有时删除字段会出现异常),加的字段位于表的末尾
db.execSQL("ALTER TABLE goods ADD vip VARCHAR(32)");
二、将“旧的表改为临时表”——>“创建新的表”——>“导入数据”——>“删除临时表”
这种方式相比上面的方法比较麻烦,但是功能强大,可以对数据库准确操作,增加字段(可以再任何地方),删除字段等功能
步骤一:
db.execSQL("ALTER TABLE goods RENAME TO _temp_goods");
步骤二:
db.execSQL("此处添加创建goods 表语句");
步骤三:
db.execSQL("INSERT INTO goods SELECT goodsId, goodsName, " ",goodsPice FROM _temp_goods");
红色的引号表示,给新添字段vip默认值为空字符串
注意这时导入的数据顺序一定要和你创建的新表的顺序对应,不然会出现导入数据不对
步骤四:
db.execSQL("DROP TABLE IF EXISTS _temp_goods");
以上是个人在项目中用到的,分享一下