加入收藏 | 设为首页 | 会员中心 | 我要投稿 东莞站长网 (https://www.0769zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Android SQLiteDatabase中版本控制作用分析

发布时间:2021-11-24 18:47:38 所属栏目:教程 来源:互联网
导读:Android 一说到数据库,就要想到sqlite,想到sqlite就要想到SQLiteDatabase和SQLiteOpenHelper 在Android系统,为我们提供了一个名为SQLiteOpenHelper的类,该类用于对数据库版本进行管理,该类是一个抽象类,有两个重要方法 分别是 onCreate(SQLiteDatabase

Android 一说到数据库,就要想到sqlite,想到sqlite就要想到SQLiteDatabase和SQLiteOpenHelper
 
在Android系统,为我们提供了一个名为SQLiteOpenHelper的类,该类用于对数据库版本进行管理,该类是一个抽象类,有两个重要方法
 
分别是 onCreate(SQLiteDatabase db)和onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
 
publicSQLiteOpenHelper(Context context,Stringname,SQLiteDatabase.CursorFactoryfactory, int version)
 
super(context, DB_NAME,null, DB_VERSION);
关于数据库的版本,开始设置为1.
     当调用SQLiteOpenHelper的getWritableDatabase()或者getReadableDatabase()方法获取用于操作数据库的SQLiteDatabase实例的时候,如果数据库不存在,Android系统会自动生成一个数据库,接着调用onCreate()方法,onCreate()方法在初次生成数据库时才会被调用,在onCreate()方法里可以生成数据库表结构及添加一些应用使用到的初始化数据。 onUpgrade()方法在数据库的版本发生变化时会被调用,数据库的版本是由程序员控制的,假设数据库现在的版本是1,由于业务的需要,修改了数据库表的结构,这时候就需要升级软件,升级软件时希望更新用户手机里的数据库表结构,为了实现这一目的,可以把原来的数据库版本设置为2(或其他数值),并且在onUpgrade()方法里面实现表结构的更新。当软件的版本升级次数比较多,这时在onUpgrade()方法里面可以根据原版号和目标版本号进行判断,然后作出相应的表结构及数据更新。
 
getWritableDatabase()和getReadableDatabase()方法都可以获取一个用于操作数据库的 SQLiteDatabase实例。但getWritableDatabase() 方法以读写方式打开数据库,一旦数据库的磁盘空间满了,数据库就只能读而不能写,倘若使用的是getWritableDatabase() 方法就会出错。getReadableDatabase()方法先以读写方式打开数据库,如果数据库的磁盘空间满了,就会打开失败,当打开失败后会继续尝试以只读方式打开数据库,对于熟悉SQL语法的程序员而言,直接使用execSQL()和rawQuery()方法执行 SQL语句就能完成数据的添加、删除、更新、查询操作。

(编辑:东莞站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读