SQLite如何升级数据库
来源:互联网 发布:行知职高吧 编辑:程序博客网 时间:2024/05/28 15:09
熟悉SQLite的同学都知道 我们继承SQLiteOpenHelper 要重写两个方法
@Overridepublic void onCreate(SQLiteDatabase db) {//第一次创建数据库恩文件时候才会执行,之后不会再执行}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {//数据库版本号比之前的版本大才会执行这个方法}
之前面试的时候有被面试官问到,什么时候会用到这两个方法,应该如何使用?
这里代码就不写了,说一下使用场景吧
比如 我们新建了一张表 book.db
public String CREATE_BOOK = "create table BOOK ("+"id integer primary key autoincrement,"+"price real,"+"name text,"+"pages integer";db.exexSQL(CREATE_BOOK );
1、现在有需求,需要增加字段
@Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // 使用for实现跨版本升级数据库 for (int i = oldVersion; i < newVersion; i++) { switch (i) { case 1: upgradeToVersion2(db); break; case 2: upgradeToVersion3(db); break; default: break; } } } private void upgradeToVersion2(SQLiteDatabase db){ // favorite表新增1个字段 String sql1 = "ALTER TABLE "+SQL.T_FAVORITE+" ADD COLUMN deleted VARCHAR"; db.execSQL(sql1); } private void upgradeToVersion3(SQLiteDatabase db){ // favorite表新增2个字段,添加新字段只能一个字段一个字段加,sqlite有限制不予许一条语句加多个字段 String sql1 = "ALTER TABLE "+表名E+" ADD COLUMN message VARCHAR"; String sql2 = "ALTER TABLE "+表名+" ADD COLUMN type VARCHAR"; db.execSQL(sql1); db.execSQL(sql2); }
2、如何我们想再添加一张 Category表用于图书的分类
public String CREATE_CATEGORY = "create table CATEGORY ("+"id integer primary key autoincrement,"+"name text,"+"code integer";
db.exexSQL(CREATE_CATEGORY );
一、卸载程序,重新下载最新app(比较极端)
二、升级数据库(升级APP时,覆盖安装app,包名路径下的文件包括数据库,不会删除)
那要怎么书写代码呢?
...
@Overridepublic void onCreate(SQLiteDatabase db) {db.execSQL(CREATE_BOOK );db.execSQL(CREATE_CATEGORY );}
@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {db.execSQL("drop table if exists BOOK");db.execSQL("drop table if exists CATEGORY");onCreate(db);}
....
记得改版本号
阅读全文
0 0
- SQLite如何升级数据库
- sqlite 数据库升级
- 5、Sqlite数据库升级
- Android SQLite数据库升级
- Android SQLite升级数据库
- Sqlite数据库升级
- Sqlite数据库升级方法
- 升级SQLite数据库
- SQlite数据库升级
- Android Sqlite 数据库升级
- SQLite数据库升级
- SQLite数据库升级
- IOS sqlite数据库升级操作
- sqlite数据库修改及升级
- Android sqlite数据库升级解决方案
- 升级SQLite数据库最佳写法
- android中sqlite数据库升级
- sqlite数据库自动升级设计
- Android开发:最全面、最易懂的Android屏幕适配解决方案
- HDFS常用的命令
- JSON对象和字符串之间的相互转换
- 由程序员向机器学习科学家的学习路径
- 编译
- SQLite如何升级数据库
- 重载<< >>
- 链表中环的入口节点(Java实现)
- Eclipse在线安装插件(PyDev)
- 分数加减法
- Object类的方法学习
- 写给临近毕业选择PHP培训的孩子们别在比较PHP培训哪家好了
- android:app瘦身之旅
- UVa11300