`
yq81862
  • 浏览: 41107 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android中SQLite版本升级

阅读更多
Android中SQLite版本升级
网上有很多文章,但是感觉写的都不是很明白
前提:
定义DbOpenHelper类继承SQLiteOpenHelper
重写onCreate和onUpgrade方法
onDowngrade是降级的方法,应该不会用到
定义两个属性
// 数据库名称,如果是null就会创建一个在内存中的数据库,当然内存被清理数据也就消失了
private static final String DATABASE_NAME = "test.db";
// 数据库版本,必须大于1,不然抛异常
private static final int DATABASE_VERSION = 1;

最重要的方法是(网上都没有说):
public DbOpenHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
一,有了前提就可以说说执行过程
1,在使用数据库的时候就会调用DbOpenHelper构造方法
2,猜测(懒,没有看源码)SQLite会根据DATABASE_NAME进行判断,如果不存在就创建,同时记录版本号。然后调用onCreate方法
3,如果DATABASE_NAME存在,就检查版本号,如果版本号一致就继续执行
4,如果版本号不一致就执行onUpgrade方法
二,onUpgrade方法(自己定义规则,版本号是连续)
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// 1是初始化版本,所以不用考虑
// 不能使用else if, 是为了解决跨版本的问题比如1直接升级到5需要执行2,3,4,5
// newVersion在这个方法没有用到,可以做个判断newVersion == DATABASE_VERSION
// 如果不等就抛异常(SQLite内部出现错误了,这种应该不可能出现)
int currVersion = oldVersion;
if (currVersion == 2) {
// TODO执行相应的数据库变更代码
currVersion = 3;
}
if (currVersion == 3) {
// TODO执行相应的数据库变更代码
currVersion = 4;
}
if (currVersion == 4) {
// TODO执行相应的数据库变更代码
currVersion = 5;
}
if (currVersion == 5) {
// TODO执行相应的数据库变更代码
}
}
三,如何保留原始数据,创建临时表,初始化值之类的都属于sql范畴,就不说了。


分享到:
评论

相关推荐

    Android数据库SQLite详解

    3. 在`onUpgrade()`中处理版本升级,如增加、删除或修改表结构。 4. 在应用中,通过`getWritableDatabase()`或`getReadableDatabase()`获取数据库实例。 5. 使用`SQLiteDatabase`对象执行CRUD操作,如`execSQL()`...

    android sqlite的升级demo

    本文将详细讲解如何在Android项目中进行SQLite数据库的升级,结合提供的"android sqlite的升级demo"来深入理解这一过程。 首先,我们需要明白SQLite数据库的版本管理。在Android中,每个SQLite数据库都有一个关联的...

    android 的sqlite数据库加密实现

    1. SQLCipher:SQLCipher是一个开源库,它提供了一个SQLite的加密版本,通过在SQL语句中添加一个密钥来启用加密。在Android中,可以通过集成SQLCipher库来实现数据库的加密。 三、使用SQLCipher实现Android SQLite...

    Android SQLite学习工具

    这个类提供了onCreate()和onUpgrade()方法,分别在数据库首次创建和版本升级时调用。 首先,创建数据库需要定义一个SQLiteOpenHelper的子类,并重写其构造函数和上述的onCreate()方法。在onCreate()中,我们可以...

    Android SQLite内置数据库,以及SQLite版本管理

    - `SQLiteOpenHelper`的子类:展示如何创建数据库表和处理版本升级。 - SQL语句:创建表的语句,可能包含示例数据的插入。 - Activity或Fragment:使用`SQLiteOpenHelper`进行数据操作的代码示例。 - 示例表结构...

    android中sqlite的使用

    SQLiteOpenHelper有onCreate()和onUpgrade()两个方法,分别在数据库首次创建和版本升级时调用,用于执行数据库初始化和升级脚本。 2. 创建数据库和表: 在onCreate()方法中,你可以通过SQL语句创建数据库和表。...

    Android数据库sqlite存储

    在Android开发中,SQLite是一个重要的组成部分,它是轻量级的数据库系统,被广泛用于本地数据存储。SQLite数据库在Android应用中扮演着至关重要的角色,它允许开发者创建、修改和管理数据库,无需用户干预,提供了...

    android-sqlite-encrypt

    "android-sqlite-encrypt"库还支持数据库版本管理,这使得升级或降级数据库结构时,能够保持加密状态。同时,该库兼容Android的SQLiteOpenHelper,允许开发者使用熟悉的API进行数据库操作,降低了学习和使用的难度。...

    android sqlite数据库升级学习

    本文将深入探讨如何在Android中进行SQLite数据库的升级学习。 首先,我们需要理解Android的SQLiteOpenHelper类,它是处理SQLite数据库操作的核心。SQLiteOpenHelper提供了创建、升级和打开数据库的方法。我们通常会...

    Android-sqlite-android一个AndroidSQLite支持库

    在压缩包`requery-sqlite-android-2209ef4`中,可能包含了`sqlite-android`的特定版本源码或者库文件,开发者可以研究源码以了解更多底层实现细节,或者直接将库文件集成到项目中使用。 总之,`sqlite-android`是一...

    android操作数据库Sqlite源代码

    在`onCreate()`方法中,我们会编写创建表的SQL语句,而在`onUpgrade()`方法中,处理数据库版本升级时的表结构修改。 在Android SQLite 增、删、查、改操作源码.rar中,你可能会找到以下关键类和方法: 1. **...

    Android基于Sqlite的学生信息管理系统源码.zip

    2. 升级数据库:重写onUpgrade()方法,当数据库版本升级时更新表结构或数据。 3. 获取数据库实例:通过getWritableDatabase()或getReadableDatabase()方法获取可读写或只读的SQLiteDatabase对象。 五、SQLite操作 1...

    arcgis for android 读取加载sqlite数据库.rar

    - 数据库版本管理:当数据库结构改变时,需要更新数据库版本并处理升级逻辑。 - 性能优化:避免在主线程中进行耗时的数据库操作,可以使用AsyncTask或者其他的异步处理方式。 6. **示例代码**: 创建一个...

    android的SQlite完整demo实现

    `onUpgrade()` 方法会在数据库版本升级时调用,通常用于更新表结构或数据。 ```java public class MyDatabaseHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME = "MyDB.db"; ...

    065集-Android中SQLite编程-数据的插入

    Android SDK提供了SQLiteOpenHelper这个辅助类,用于创建、升级和管理SQLite数据库。开发者需要继承SQLiteOpenHelper并重写其onCreate()和onUpgrade()方法。 在Android中插入数据,通常涉及以下步骤: 1. 创建...

    Android 使用SQLite数据库

    `onUpgrade()`方法在数据库版本升级时调用,用于处理旧版本到新版本之间的迁移,如删除旧表并创建新表。此外,SQLiteOpenHelper还提供了`getReadableDatabase()`和`getWritableDatabase()`方法来获取只读或可读写的...

    arcgis for android 加载sqlite

    在本文中,我们将深入探讨如何使用ArcGIS for Android加载SQLite数据库,特别是涉及通过"JDBC"(Java Database Connectivity)接口进行连接。SQLite是Android系统内置的关系型数据库,适合存储空间数据。 首先,...

    Android+sqlite

    Android提供了SQLiteOpenHelper类,帮助我们创建和升级数据库,以及SQLiteDatabase对象用于执行SQL语句,进行数据的增删改查操作。开发者通常会创建一个自定义的SQLiteOpenHelper子类,重写其中的`onCreate()`和`...

    Android中使用SQLite示例

    在Android应用开发中,SQLite是一个重要的组成部分,它是一个轻量级的数据库系统,可以在设备上本地存储数据。SQLite被广泛用于需要持久化数据的应用中,比如用户设置、游戏进度、应用配置等。以下是对Android中使用...

    android读取sqlite数据库的数据并用listview显示

    在Android中,我们通常通过扩展SQLiteOpenHelper类来实现,这个类帮助我们管理数据库的创建和版本控制。创建一个新的Java类,如`DatabaseHelper`,并重写`onCreate()`和`onUpgrade()`方法。`onCreate()`用于首次创建...

Global site tag (gtag.js) - Google Analytics