GreenDao升级

在版本升级时,GreenDao默认的升级方式会导致数据丢失。为避免这个问题,需要自定义OpenHelper并使用MigrationHelper进行数据库升级和数据迁移。本文介绍了四个步骤:1) 创建自定义OpenHelper并重写onUpgrade方法;2) 调整表实体的字段;3) 删除自动生成的构造方法和getter/setter,重新生成;4) 修改模块build.gradle中的数据库版本号。同时,文章提到了混淆配置和SQLCipher加密的注意事项。
摘要由CSDN通过智能技术生成

**引言:**在版本迭代时,我们经常需要对数据库进行升级,而GreenDAO默认的DaoMaster.DevOpenHelper在进行数据升级时,会把旧表删除,然后创建新表,并没有迁移旧数据到新表中,从而造成数据丢失。
这在实际中是不可取的,因此我们需要作出调整。下面介绍数据库升级的步骤与要点。
第一步:新建一个类,继承DaoMaster.DevOpenHelper,重写onUpgrade(Database db, int oldVersion, int newVersion)方法,在该方法中使用MigrationHelper进行数据库升级以及数据迁移。它主要是通过创建一个临时表,将旧表的数据迁移到新表中,大家可以去看下源码。
· public class MyOpenHelper extends DaoMaster.OpenHelper {
· public MyOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory) {
· super(context, name, factory);
· }
·
· @Override
· public void onUpgrade(Database db, int oldVersion, int newVersion) {
·
· //把需要管理的数据库表DAO作为最后一个参数传入到方法中
· MigrationHelper.migrate(db, new MigrationHelper.ReCreateAllTableListener() {
·
· @Override
· public void onCreateAllTables(Database db, boolean ifNot

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值