Android SQLiteOpenHelper Sqlite数据库升级onUpgrade

18 篇文章 0 订阅

Android Sqlite数据库升级,在Android APP开发之中,非常常见:

在确定原来的数据库版本号之后,在原来数据库版本号+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列:

 

转载于:Android SQLiteOpenHelper Sqlite数据库升级onUpgrade_onupgrade方法_刘德利_Android的博客-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值