greenDao3.0及以上数据库升级并保留原数据库数据,详细教程

在Android中很多时候都会用到本地数据库,greendao作为一个高效优化好的数据库框架被广大Android开发人员所使用,好了,其他不多说,直接进主题。


首先在 entity中添加你所想添加的新增字段。rebuild一下项目。


1.在app下的build.gradle文件的repositories内添加红色部分下面代码:

buildscript {
    repositories {
        mavenCentral()
        maven { url "https://jitpack.io" }
    }
    dependencies {
        classpath 'org.greenrobot:greendao-gradle-plugin:3.2.0'
    }
}
2.添加依赖
dependencies {
    compile 'org.greenrobot:greendao:3.2.0'
    compile 'com.github.yuweiguocn:GreenDaoUpgradeHelper:v1.1.0'
}
3.自定义MySQLiteOpenHelper 类,并且继承DaoMaster.OpenHelper ,然后重写onUpgrade方法,注意:onUpgrade有2个方法,
我们重写
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
第一个参数为SQLiteDatabase 的方法,而不是Database。
代码如下:
public class MySQLiteOpenHelper extends DaoMaster.OpenHelper {
    public MySQLiteOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory) {
        super(context, name, factory);
    }
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        MigrationHelper.migrate(db,LocationDao.class,RegistrationFormDao.class);
    }
}
其中:MigrationHelper.migrate(db,LocationDao.class,RegistrationFormDao.class); 里面参数为SQLiteDatabase db,
后面紧接着的参数为你所有的Dao类。

4.找到DaoMaster.DevOpenHelper devOpenHelper = new DaoMaster.DevOpenHelper(MyApplication.getContext(),"testdb",null);
修改为
MySQLiteOpenHelper devOpenHelper = new MySQLiteOpenHelper(MyApplication.getContext(),"testdb",null);
 

5。修改数据库版本号,+1。
运行更新即可。如果对你有帮助,请点个赞!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值