android SQLiteDatabase中版本控制作用详解
来源:互联网 发布:制作菜单用什么软件 编辑:程序博客网 时间:2024/06/05 03:05
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语句就能完成数据的添加、删除、更新、查询操作。
- android SQLiteDatabase中版本控制作用详解
- android SQLiteDatabase详解
- Android中SQLiteDatabase操作
- android 中SQLiteDatabase的使用
- Android中关于SQLiteDatabase(一)
- Android中SQLiteDataBase的使用
- android中版本控制---Git
- android studio svn版本控制详解
- Android中SQLiteDatabase中插入中文数据
- Android中SQLite开发详解(四)SQLiteOpenHelper 类和SQLiteDatabase类介绍
- Android中关于SQLiteDataBase的query()方法参数详解,, limit ? offset? 分页用法
- Android中SQLiteDatabase操作【附源码】
- Android中SQLiteDatabase操作【附源码】
- Android中SQLiteDatabase操作【附源码】
- Android-SQLitedatabase
- Android SQLiteDatabase
- Android SQLiteDatabase
- Git版本控制详解
- org.aspectj.lang.JoinPoint-中文简要API
- windows 常用
- Linux vi
- 结构体对齐
- IHookHelper
- android SQLiteDatabase中版本控制作用详解
- 新手报到
- 用mount命令挂载镜像文件小记
- linux----Vmware tools安装
- [iOS开发必备技巧之]禁用UITabBarController双击事件
- 关于 httpUrlConnection 的 setDoOutput 与 setDoInput
- NotificationManager和Notification的使用总结
- PHP之学习cookie详解
- python元组学习