Android SQLiteOpenHelper Sqlite数据库升级onUpgrade
2017-10-08 15:41
85 查看
Android Sqlite数据库升级,在Android APP开发之中,非常常见:
在确定原来的数据库版本号之后,在原来数据库版本号+1,就会执行onUpgrade方法,进行数据库升级操作:
在onUpgrade方法中,执行alter table student_table add age integer null 语句:
执行升级前的结果:
执行升级后的结果,多了一个age列:
谢谢大家的观看,更多精彩技术博客,会不断的更新,请大家访问,
刘德利CSDN博客, http://blog.csdn.net/u011967006
在确定原来的数据库版本号之后,在原来数据库版本号+1,就会执行onUpgrade方法,进行数据库升级操作:
在onUpgrade方法中,执行alter table student_table add age integer null 语句:
package com.liudeli.day2.sqlite.db; import android.content.Context; import android.database.DatabaseErrorHandler; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class MySQLiteOpenHelper extends SQLiteOpenHelper { /** * 数据库的名称 */ private static final String DATABASE_NAME = "PersonDB.db"; /** * 数据库的版本号,以后要升级数据库,修改版本号为 +1 即可 */ private static final int DATABASE_VERSION = 2; private static MySQLiteOpenHelper instance; /** * 单例模式 * @param context 传入上下文 * @return 返回MySQLiteOpenHelper对象 */ public static MySQLiteOpenHelper getInstance(Context context) { if (null == instance) { synchronized (MySQLiteOpenHelper.class) { if (null == instance) { instance = new MySQLiteOpenHelper(context, DATABASE_NAME, null, DATABASE_VERSION); } } } return instance; } // 构造方法不对外暴露 private MySQLiteOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) { super(context, name, factory, version); } // 构造方法不对外暴露 private MySQLiteOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version, DatabaseErrorHandler errorHandler) { super(context, name, factory, version, errorHandler); } // 初始化操作,会执行onCreate @Override public void onCreate(SQLiteDatabase db) { // 创建一个 student_table表 db.execSQL("create table student_table(_id integer primary key autoincrement, name text);"); } // 用于升级数据库,当Version 变动了,就会调用onUpgrade方法 @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("alter table student_table add age integer null"); } } ---------- 生成完成:
执行升级前的结果:
执行升级后的结果,多了一个age列:
谢谢大家的观看,更多精彩技术博客,会不断的更新,请大家访问,
刘德利CSDN博客, http://blog.csdn.net/u011967006
相关文章推荐
- Android实现ListView左右滑动删除和编辑
- Android 客户端和服务器 json交互
- android屏幕适配的问题
- android快速开发:使用butterknife注解
- 初识安卓小程序(Android电话拨号器)
- android ViewHolder模式超简洁写法
- android源码解析--AlertDialog及AlertDialog.Builder
- android scroll的小理解
- Android如何实现边采集边上传
- Android捕获全局异常,并对异常做出处理
- Android中asset文件夹和res/raw文件夹区别
- Android学习路线(从小神到大神的…
- android判断应用是否有某个权限
- android 5.0新特性学习--视图阴影
- android:AssetManager
- Android中手机震动的设置(Vibrator)的步骤简要说明
- Android HttpClient HttpURLConnection相关介绍
- (转)如何防止Android应用被反编译
- Android的存储系统的简要分析