当前位置: 首页 > news >正文

网站建设中模板代码长春百度seo公司

网站建设中模板代码,长春百度seo公司,中国电子商务网站建设情况,什么网站教你做早点前言 大家好久不见,一转眼马上八月份下旬了,最近由于工作比较忙,没时间给大家更新博文。百忙之中抽出时间,给大家来更新一篇关于GreenDao3数据库的升级。 关于GreenDao的详细介绍以及一些逻辑性的增、删、改、查等,可以…

在这里插入图片描述

前言

       大家好久不见,一转眼马上八月份下旬了,最近由于工作比较忙,没时间给大家更新博文。百忙之中抽出时间,给大家来更新一篇关于GreenDao3+数据库的升级

       关于GreenDao的详细介绍以及一些逻辑性的增、删、改、查等,可以参考我去年写的一篇文章,《Android GreenDao 3.2.2的详解以及实战(附Demo)》
在这里插入图片描述


       在版本迭代时,我们经常需要对数据库进行升级,而GreenDao默认的DaoMaster.DevOpenHelper在进行数据升级时,会把旧表删除,然后创建新表,并没有迁移旧数据到新表中,从而造成数据丢失。

       这在实际开发项目应用中是不可取的,因此我们需要作出调整。

       当然了在此之前,自己也调研并且咨询了一下度娘,发现好多文章写的比较杂乱,最终按照实际操作之后也并没有达到预期效果,但是大部分都是对于数据库版本升级都是在onUpgrade(Database db,int olbVersion,int newVersion)方法中进行处理的。

       最终也并不是没有解决办法,网上有不少关于MigrationHelper的源码,它主要是通过创建一个临时表,将旧表的数据迁移到新表中,大家可以自行去百度看源码吧。接下来,说一下我个人实际操作吧!

项目实战

这里用的是于卫国大佬封装好的GreenDaoUpgradeHelper
它是一个GreenDao的数据库升级帮助类
使用它可以很容易解决数据库升级问题,并且只需要一行代码。
https://github.com/yuweiguocn/GreenDaoUpgradeHelper

1、导入依赖implementation 'com.github.yuweiguocn:GreenDaoUpgradeHelper:v2.1.0'

2、新建一个类,继承DaoMaster.OpenHelper,重写onUpgrade(Database db,int olbVersion,int newVersion)方法,在该方法中使用MigrationHelper进行数据库升级以及数据迁移。

 MigrationHelper.migrate(Database db, new MigrationHelper.ReCreateAllTableListener() {}, xxxDao.class);

db:数据库操作对象
ReCreateAllTableListener:重新创建表的监听器
xxxDao.class:对应bean的数据库操作对象

public class MyOpenHelper extends DaoMaster.OpenHelper {public MyOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory) {super(context, name, factory);}@Overridepublic void onUpgrade(Database db, int oldVersion, int newVersion) {//把需要管理的数据库表DAO作为最后一个参数传入到方法中MigrationHelper.migrate(db, new MigrationHelper.ReCreateAllTableListener() {@Overridepublic void onCreateAllTables(Database db, boolean ifNotExists) {DaoMaster.createAllTables(db, ifNotExists);}@Overridepublic void onDropAllTables(Database db, boolean ifExists) {DaoMaster.dropAllTables(db, ifExists);}}, RecordBeanDao.class);// 修改beanDao对象}
}

3、在数据库初始化的地方,使用MyOpenHelper替代DaoMaster.DevOpenHelper来进行创建数据库等操作。

//封装数据库的创建、更新、删除
MyOpenHelper openHelper = new MyOpenHelper(AppApplication.getContext(),DB_NAME,null);
//获取数据库
SQLiteDatabase mDb = openHelper.getWritableDatabase();
//封装数据库中表的创建、更新、删除
DaoMaster mDaoMaster = new DaoMaster(mDb);  //合起来就是对数据库的操作
//对表操作的对象。
DaoSession mSession = mDaoMaster.newSession(); //可以认为是对数据的操作

4、修改实体对象的字段

 @Entitypublic class RecordBean {@Idprivate Long id;private String name;private String age; // 添加的字段

5、执行编译(重点),目的让bean对象重新生成配置信息和Dao类。

6、修改app下的gradle数据库信息,build.gradle中数据库的版本号schemaVersion,递增加1即可,最后运行app。

 greendao {// 数据库版本号,升级时及时修改schemaVersion 2daoPackage 'com.harry.greendaomaster.greendao.gen' // 设置DaoMaster、DaoSession、Dao包名targetGenDir 'src/main/java' // 设置DaoMaster、DaoSession、Dao目录}

最后

       经过实际项目应用中,发现无论是删除表单也好,还是修改或者删除表单字段也好,都实测有效。并且,旧数据也会做保留不会丢失。

最后,这是我个人项目中的需求,大家也需要按照个人需求来实际开发。欢迎大家,留言探讨,共同学习!

项目地址:Android GreenDao数据库升级

http://www.15wanjia.com/news/172026.html

相关文章:

  • 山东城乡建设厅网站网络公司用什么名字比较好
  • seo搜索优化网站推广排名温州做网站
  • 免费网站建站2773祖庙高明网站建设
  • 简单的网站设计开发html5模板
  • 为什么公司网站打不开网店美工考试
  • 教育类集群网站建设wordpress 封ip
  • 扁平化设计网站代码开发公司工程项目质量安全管理体系
  • 石家庄网站建设.神鹿网络聊城做手机网站
  • 知识付费问答系统网站开发wordpress全部404
  • 个人备案的网站涉及到资金山西企业建站方案
  • 网站开发相关专业小程序app开发
  • 网站首页建设方案武鸣住房和城乡规划建设局网站
  • 公司网站维护更新流程视频网站怎么做的反爬虫
  • 北京哪家做网站优化网站建设需求怎么写
  • 开平市住房和城乡建设局网站网站后端建设
  • 网站工程是干啥的广元市剑阁县建设局网站
  • 网站建设文本居中代码免费行情软件app网站mnu
  • 梧州网站建设定制免费的网站域名查询
  • 云南哪里有给做网站的下城网站建设
  • 网站建设相关小论文郑州建设网站哪家好
  • 芜湖网站建设求职简历展厅装饰公司
  • 企业建立网站北京工厂网站建设
  • 东莞网站推广推广软件百度关键词挖掘查询工具
  • 外发加工网订货会网站建设优化哪家公司好
  • 快三彩票网站开发登录wordpress后台的管理
  • 有没有房建设计的网站重庆app定制
  • 响应式科技公司网站模板下载wordpress商品
  • 有个做h手游的网站国家高新技术企业标志
  • 用jsp做的网站在不同浏览器显示效果差异很大如何解决社交平台运营是做什么的
  • 百度推广手机网站检测wordpress 获取分类链接