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

购物网站运营Wordpress虚拟域名

购物网站运营,Wordpress虚拟域名,wordpress 上传中文文件,专业做毕业设计网站前言 大家好久不见,一转眼马上八月份下旬了,最近由于工作比较忙,没时间给大家更新博文。百忙之中抽出时间,给大家来更新一篇关于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.yayakq.cn/news/437288/

相关文章:

  • 做商城网站要什么手续实用又有创意的设计
  • 做新闻封面的网站200平方办公室装修设计
  • 哈尔滨做网站建设做美工需要知道的设计网站
  • 济南网网络推广郑州网站优化费用
  • ftp上传网站 需要什么文件网上教育培训机构
  • 中企动力网站建设精品案例茶叶网站建设一般的风格
  • 网站seo诊断工具设置个网站要多少钱
  • 西部数码手机网站环球设计网站
  • 摄影网站官网大全出售网站建设群
  • 临沂网站设计培训班营销型网站结构
  • 网站建设 设计那种连接线厂家wordpress 实用主题
  • wordpress外贸建站怎么加左侧边栏上海建设工程信息网查询
  • 几百块钱建网站宁波app制作
  • 潍坊网站制作多少钱2021年世界500强企业排名
  • 淘宝软件营销网站建设搜索引擎优化策略不包括
  • 怎么优化自己网站wordpress 调用自定义模板
  • 互联网网站seo优化做一个官方网站需要多少钱
  • .net 创建网站项目自己制作一个网站怎么制作
  • 网站推广的常用方法系统门户网站建设详细功能
  • 现在币圈有那些私募网站做的好河源网站建设工作室
  • 国家林业工程建设协会网站wordpress接口发布文章
  • 南岗红旗大街网站建设夏县做网站
  • 做网站都需要服务器吗能去百度上班意味着什么
  • 北控京奥建设有限公司网站wordpress文章页随机文章
  • 网站建设印花税某公司网页设计
  • 英文网站提交织梦网站默认密码
  • 和外国人做ic生意的网站嘉兴网站搜索优化
  • 企业网址注册凌哥seo
  • 做网站空间放哪些文件夹北京网站建设1000zhu
  • 创建公司网站需要什么西安哪有做网站的