现在的位置: 首页 > 综合 > 正文

如何使用SQLiteOpenHelper

2013年08月24日 ⁄ 综合 ⁄ 共 908字 ⁄ 字号 评论关闭


都知道在Android中SQLiteOpenHelper是用来创建和升级数据库,参考
$ANDROID_SDK_HOME/docs/reference/android/database/sqlite/SQLiteOpenHelper.html

软件发布出去了,用户已经安装使用了,但是随着软件的升级,数据库结构做了些改动,我们不希望用户把应用卸载了再装(这样会丢失应用所有的数据),我们希望在数据库总体结构和已有数据不变的情况下做些小的改动,比如新增一个字段或索引,新增加一个表等等,那么这个时候我们就要用到这个类了

常用的也就是onCreate和onUpgrade这两个方法,在使用的时候这两个方法都需要重写,里面实现自己的逻辑

我们先列出一个场景:
假设第一版程序发布出去,First Public Version,代码如下

1 @Override
2 public

void

onCreate(SQLiteDatabase db) {
3     bootstrapDB(db);
4 }
5  
6 @Override
7 public

void

onUpgrade(SQLiteDatabase db,
int

oldVersion,
int

newVersion) {
8 }

onUpgrade里面没有代码,第一版出去没有需要更新的,bootstrapDB方法就是些DDL和数据初始化操作等等

之后过了一段时间,新的程序发布(其中数据库结构做了些变化),这个时候已经开始使用第一版程序的用户就需要升级,我们不希望他已经存在的数据被破坏,那么我们发布出去的新的版本中代码该怎么写呢?
直接看代码,这些代码都是从Android自带的应用中抽取出来的,做了些具体业务上的简化,主要是阐述清楚用法

1 @Override
2 public

void

onCreate(SQLiteDatabase db) {
3     bootstrapDB(db);
//
这个方法里面都是最新版的初始化方法
4 }

抱歉!评论已关闭.