
大家好久不见,一转眼马上八月份下旬了,最近由于工作比较忙,没时间给大家更新博文。百忙之中抽出时间,给大家来更新一篇关于GreenDao3+数据库的升级。
关于GreenDao的详细介绍以及一些逻辑性的等,可以参考我去年写的一篇文章,《Android GreenDao 3.2.2的详解以及实战(附Demo)》

在版本迭代时,我们经常需要对数据库进行升级,而GreenDao默认的在进行数据升级时,会把旧表删除,然后创建新表,并没有迁移旧数据到新表中,从而造成数据丢失。
这在实际开发项目应用中是不可取的,因此我们需要作出调整。
当然了在此之前,自己也调研并且咨询了一下度娘,发现好多文章写的比较杂乱,最终按照实际操作之后也并没有达到预期效果,但是大部分都是对于数据库版本升级都是在方法中进行处理的。
最终也并不是没有解决办法,,它主要是通过创建一个临时表,将旧表的数据迁移到新表中,大家可以自行去百度看源码吧。接下来,说一下我个人实际操作吧!
这里用的是于卫国大佬封装好的,
它是一个GreenDao的。
使用它可以很容易解决数据库升级问题,并且只需要一行代码。
https://github.com/yuweiguocn/GreenDaoUpgradeHelper
1、导入依赖:
2、新建一个类,继承,重写方法,在该方法中使用进行数据库升级以及数据迁移。
db:数据库操作对象
ReCreateAllTableListener:重新创建表的监听器
xxxDao.class:对应bean的数据库操作对象
3、在数据库初始化的地方,使用MyOpenHelper替代DaoMaster.DevOpenHelper来进行创建数据库等操作。
4、修改实体对象的字段
5、执行编译(重点),目的让bean对象重新生成配置信息和Dao类。
6、修改app下的gradle数据库信息,build.gradle中数据库的版本号,递增加1即可,最后运行app。
经过实际项目应用中,发现无论是删除表单也好,还是修改或者删除表单字段也好,都实测有效。并且,旧数据也会做保留不会丢失。
最后,这是我个人项目中的需求,大家也需要按照个人需求来实际开发。欢迎大家,留言探讨,共同学习!
项目地址:Android GreenDao数据库升级
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/12756.html