资料主要来源于郭霖《第一行代码》
如有侵权速与我联系 ### [email protected]
上一篇主要介绍了如何创建数据库
本篇介绍对数据库的升级,还是使用DataBaseDemo项目
SQLiteOpenHelper抽象类的两个重写方法中,上一篇使用了onCreate(),而只剩下onUpgrade(),看方法名就知道意思就是对数据库的升级。如果你细心就会发现当你点击了创建数据库的按钮后,无论你点击多少次都不会弹出Toast提示。造成这个原因就是Restaurant.db数据库的存在使得onCreate()方法无法不会再执行,解决的办法就是卸载app然后重新安装。
如此极端的方法官方肯定不会采用,因此官方提供了onUpgrade()方法。
这次我们加入一个叫Restaurant的表:
private static final String CREATE_RESTAURANT = "create table Restaurant(" + " id integer primary key autoincrement," + " restaurant_name text," + " restaurant_location text) ";
并在onCreate()中加入代码
sqLiteDatabase.execSQL(CREATE_RESTAURANT);
想要升级数据库可以在onUpgrade()加入代码
@Override public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) { sqLiteDatabase.execSQL("drop table if exists Menu"); sqLiteDatabase.execSQL("drop table if exists Restaurant"); onCreate(sqLiteDatabase); }
意思就是如果数据库中存在Menu和Restaurant表就执行删除,这样一来就可以让onCreate()方法得到执行。
值得注意的是SQLiteOpenHelper的构造方法中第四个参数需要更改数据库版本号,比1更高就行,我改写成2吧。
查看restaurant是否创建成功可以用adb调试工具。
以上就是对数据库升级的操作。