`

Android中SQLiteOpenHelper类的onUpgrade方法的作用

 
阅读更多

Android中SQLiteOpenHelper类的onUpgrade方法的作用

结合另外一篇文档学习:

http://lzd20021683.iteye.com/blog/1396292   SQLiteOpenHelper类与自动升级数据库

 

Andoird的SQLiteOpenHelper类中有一个onUpgrade方法。帮助文档中只是说当数据库升级时该方法被触发。经过实践,解决了我一连串的疑问:

1. 帮助文档里说的“数据库升级”是指什么?

你开发了一个程序,当前是1.0版本。该程序用到了数据库。到1.1版本时,你在数据库的某个表中增加了一个字段。那么软件1.0版本用的数据库在软件1.1版本就要被升级了。

 

2. 数据库升级应该注意什么?

软件的1.0版本升级到1.1版本时,老的数据不能丢。那么在1.1版本的程序中就要有地方能够检测出来新的软件版本与老的数据库不兼容,并且能够有办法把1.0软件的数据库升级到1.1软件能够使用的数据库。换句话说,要在1.0软件的数据库的那个表中增加那个字段,并赋予这个字段默认值。

 

3. 程序如何知道数据库需要升级?

SQLiteOpenHelper类的构造函数有一个参数是int version,它的意思就是指数据库版本号。比如在软件1.0版本中,我们使用SQLiteOpenHelper访问数据库时,该参数为1,那么数据库版本号1就会写在我们的数据库中。

到了1.1版本,我们的数据库需要发生变化,那么我们1.1版本的程序中就要使用一个大于1的整数来构造SQLiteOpenHelper类,用于访问新的数据库,比如2。//关键!!!

例如 文档SQLiteOpenHelper类与自动升级数据库 中的例子:

////////////////////////////////////////////////////////////////////////////////

// 创建了一个DatabaseHelper对象,只执行这句话是不会创建或打开连接的DatabaseHelper dbHelper = new DatabaseHelper(SQLiteActivity.this,    "test_yangyz_db");

//调用构造函数:

public DatabaseHelper(Context context, String name){   this(context,name,VERSION/*默认版本*/);   }  

       // 只有调用了DatabaseHelper的getWritableDatabase()方法或者getReadableDatabase()方法之后,才会创建或打开一个连接   

       SQLiteDatabase sqliteDatabase = dbHelper.getReadableDatabase();   

 

       ////////////////////////////////////////////////////////////////////////////////

       // 调用另外一个构造函数,升级数据库

DatabaseHelper dbHelper = new DatabaseHelper(SQLiteActivity.this,  "test_yangyz_db"2/*新版本*/);   

        // 得到一个只读的SQLiteDatabase对象   

        SQLiteDatabase sqliteDatabase = dbHelper.getReadableDatabase();   

 

当我们的1.1新程序读取1.0版本的老数据库时,就发现老数据库里存储的数据库版本是1,而我们新程序访问它时填的版本号为2,系统就知道数据库需要升级。

 

4. 何时触发数据库升级?如何升级?

当系统在构造SQLiteOpenHelper类的对象时,如果发现版本号不一样,就会自动调用onUpgrade函数,让你在这里对数据库进行升级。根据上述场景,在这个函数中把老版本数据库的相应表中增加字段,并给每条记录增加默认值即可。

新版本号和老版本号都会作为onUpgrade函数的参数传进来,便于开发者知道数据库应该从哪个版本升级到哪个版本。

升级完成后,数据库会自动存储最新的版本号为当前数据库版本号。

转自:http://www.voidest.com/edward/archives/29

 

分享到:
评论

相关推荐

    SQLiteOpenHelper类的onUpgrade方法的作用

    在深入探讨`SQLiteOpenHelper`类中的`onUpgrade`方法之前,我们先来了解下`SQLiteOpenHelper`类在Android开发中的重要性。`SQLiteOpenHelper`是Android SDK提供的一个辅助类,用于帮助开发者创建和管理应用程序中的...

    在android studio中用SQLiteOpenHelper()方法建立数据库

    今天我们讲讲在android studio中利用数据库存储中的SQLiteOpenHelper()方法建立数据库 SQLiteOpenHelper中需要重载函数: onCreate( ):利用SQL语句,在系统中创建数据库(表)功能 onUpgrade( ):利用SQL语句,在...

    android的SQLiteOpenHelper类的应用实例.docx

    总结起来,SQLiteOpenHelper在Android中是处理SQLite数据库的核心类,它负责数据库的创建、升级,以及为我们提供安全、方便的方法来执行SQL操作。通过重写其生命周期方法,我们可以定制数据库的初始化和升级过程,...

    android SQLiteOpenHelper 数据库简单应用

    SQLiteOpenHelper是Android提供的一种管理SQLite数据库的工具类,它简化了数据库的创建和版本管理。本篇文章将深入探讨如何在Android中使用SQLiteOpenHelper进行数据库的简单应用。 首先,SQLiteOpenHelper有两个...

    Android SqliteOpenHelper数据库的基本使用

    首先,我们需要创建一个继承自`SQLiteOpenHelper`的自定义类,并重写其两个关键方法:`onCreate()`和`onUpgrade()`。 `onCreate()`方法在首次创建数据库时调用,用于执行数据库的创建语句,如创建表: ```java @...

    android studio使用SQLiteOpenHelper()建立数据库的方法

    今天我们讲讲在android studio中利用数据库存储中的SQLiteOpenHelper()方法建立数据库 SQLiteOpenH elper中需要重载函数: onCreate( ):利用SQL语句,在系统中创建数据库(表)功能 onUpgrade( ):利用SQL语句,...

    Android Studio中用SQLiteOpenHelper()方法创建数据库中的表结构

    这篇博文写的是用SQLiteOpenHelper()方法创建数据库中的表结构,而如何用这个方法创建数据库,欢迎大家访问我的博文: 在android studio中用SQLiteOpenHelper()方法建立数据库 注:这篇文章是承接上面发的链接的...

    android SQLiteOpenHelper使用示例

    在Android开发中,SQLite是一个非常重要的数据存储工具,SQLiteOpenHelper是Android SDK提供的一种管理SQLite数据库的辅助类。本文将深入探讨SQLiteOpenHelper的使用方法及其在实际应用中的关键知识点。 首先,...

    android 中 SQLiteOpenHelper的封装使用详解

    在上面的示例中,我们继承了 SQLiteOpenHelper 并实现了其抽象方法 onCreate 和 onUpgrade。onCreate 方法用于创建数据库表,而 onUpgrade 方法用于升级数据库。 SQLiteOpenHelper 的封装使用 下面我们将介绍 ...

    Android开发中的SQLite数据库的增删改查工具类

    - 当数据库需要升级时,SQLiteOpenHelper的`onUpgrade`方法会被调用,开发者可以在此方法中执行升级逻辑,如修改表结构、添加新表等。 4. **注意事项**: - 数据库操作应在主线程之外进行,以避免阻塞UI线程。通常...

    android app 示例 SQLiteOpenHelper 实现数据操作

    SQLiteOpenHelper是Android SDK提供的一种工具类,它帮助开发者轻松管理SQLite数据库,包括创建、升级和打开数据库。在这个示例中,我们将深入探讨如何使用SQLiteOpenHelper进行数据操作。 SQLiteOpenHelper主要有...

    Android 数据库 SQlite 范例 SQLiteOpenHelper

    总结一下,Android中的SQLite数据库操作主要依赖SQLiteOpenHelper类,它提供了创建和升级数据库的能力。ListView结合适配器可以方便地展示数据库中的数据。此外,Menu键的使用增强了应用的交互性,使用户能轻松访问...

    android 项目利用SQLiteOpenHelper创建数据库文件Demo

    SQLiteOpenHelper是Android提供的一类用于帮助我们操作SQLite数据库的工具类,它简化了数据库的创建、升级以及版本管理。在这个“android项目利用SQLiteOpenHelper创建数据库文件Demo”中,我们将深入探讨如何在...

    SqliteOpenHelper

    `SqliteOpenHelper`是Android平台中用于操作SQLite数据库的一个关键类。SQLite是一个轻量级、嵌入式的数据库引擎,常用于移动设备应用开发,因为它的资源占用少且易于使用。在Android应用中,`SqliteOpenHelper`是...

    Pro-Android-3 BookProvider SQLiteOpenHelper

    《Pro-Android-3 BookProvider SQLiteOpenHelper》是关于Android应用开发的一本专业书籍,主要探讨了如何在Android系统中利用`BookProvider`和`SQLiteOpenHelper`进行数据存储和管理。`BookProvider`是自定义的内容...

    android 手机数据库 实现SQLiteOpenHelper

    SQLiteOpenHelper是Android SDK提供的一种管理SQLite数据库的工具类,它可以帮助开发者轻松地创建、升级和打开数据库。本篇文章将深入探讨如何在Android应用中实现SQLiteOpenHelper。 首先,我们了解...

    067集-SQLiteOpenHelper(1)视频教程

    SQLiteOpenHelper是Android开发中用于操作SQLite数据库的一个关键类。它主要负责数据库的创建、升级以及版本管理,使得开发者能够方便地处理数据库的生命周期。在这一067集的视频教程中,你将深入理解...

    SQLiteOpenHelper

    SQLiteOpenHelper是Android开发中用于操作SQLite数据库的一个关键类。它主要负责数据库的创建、升级以及版本管理。在本文中,我们将深入探讨SQLiteOpenHelper的详细使用方法,并通过一个基础的示例来展示其功能。 ...

    SQLiteOpenHelper.zip

    SQLiteOpenHelper是Android提供的一个用于操作SQLite数据库的辅助类,它简化了数据库的版本管理和创建、升级工作。本项目"SQLiteOpenHelper.zip"提供了一个简单的SQLiteOpenHelper实现,针对两个字符串字段进行CRUD...

Global site tag (gtag.js) - Google Analytics