我们在开发数据库应用的过程中,对表的结构有时候会有变化,特别是有时候增加了一些表,或者是增加了一些列。在调试时就会产生一些问题。
比如原来有一个表TABLEa。
在开发过程中增加了另外一个表TABLEb.并相应增加了访问了的代码。
private static class DatabaseHelper extends SQLiteOpenHelper {
DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(DATABASE_A_CREATE);
db.execSQL(DATABASE_B_CREATE);
}
}
如果数据库已经建立,这时候对TABLEb进行访问会有EXCEPTIOn产生,原因是ONCREATE只在第一次创建数据库时运行,如果数据库已经创建好了,则不会运行,所以我们访问的B表是不存在的。
遇到这种情况,以前我都是通过文件系统,把数据库文件删除。然后再运行就没有问题 了。可是这样做的缺点是特别麻烦,充分利用ONUPGRADE则可以轻松的达到数据库更新的目的。
代码如下
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.w(TAG, "Upgrading database from version " + oldVersion + " to " + newVersion
+ ", which will destroy all old data");
db.execSQL("DROP TABLE IF EXISTS TABLEa");
onCreate(db);
}
onupGRADE在数据库版本变化时运行到,所以只要改一下版本号,就会强制使数据库变化到最新的设计。
当然, 在你的应用发布时,别忘了恢复成你想要的版本。而且更要记得的是,如果在两次发布之间,数据库的结构有变化,也要变更版本号。
分享到:
相关推荐
Android之Sqlite数据库操作实例
它是一个零配置的数据库,这意味着与其他数据库不一样,您不需要在系统中配置。 就像其他数据库,SQLite 引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite 直接访问其存储文件。 为什么要用 ...
Android实验报告Sqlite数据库操作.pdf
android对sqlite数据库的操作
资源名称:android中sqlite数据库的创建以及增删改查 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
Sqlite数据库操作
基于Android的SQLite数据库操作Demo
Android Studio SQLite数据库使用
Android 操作 SQLite数据库 Android 操作 SQLite数据库 Android 操作 SQLite数据库
Android使用SQLite数据库进行增删改查详细案例...
Android连接sqlite数据库进行增删改查和事务操作
一个android读取sqlite数据库的数据并用listview显示demo,如有问题及时提醒。
Android 数据库SQLite 详解,简单学好SQLite
该代码实现了android的sqlite数据库的加密和解密
Android 操作 sqlite 数据库增加修改删除 Android 操作 sqlite 数据库增加修改删除 Android 操作 sqlite 数据库增加修改删除
android SQLite数据库操作源码,包括如何建表,增删改查等操作
android之SQLite数据库开发详解: Android 开发中使用 SQLite 数据库 简介: SQLite 是一款非常流行的嵌入式数据库,它支持 SQL 查询,并且只用很少的内存。Android 在运行时集成了 SQLite,所以每个 Android 应用...
这是一个简单的sqlite数据库操作,包含增删改查
android studio SQLite数据库的创建、增删改查操作 SharedPreferences存储数据的方法 掌握文
本源码提供了android 平台操作sqlite 数据库的完整源码实例。包括数据库的创建、更新,表的创建、删除,数据的插入、修改、删除、查询。