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

创意设计师个人网站手游网站怎么做的

创意设计师个人网站,手游网站怎么做的,个人游戏开发者 死路一条,工业设计培训前言 大家好久不见,一转眼马上八月份下旬了,最近由于工作比较忙,没时间给大家更新博文。百忙之中抽出时间,给大家来更新一篇关于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/600640/

相关文章:

  • 大学网站建设的意义检测WordPress主题的网站
  • 手机wap网站导航模板wordpress wp_footer在哪里定义
  • mvc 5 做网站的教程晋江网站建设晋江
  • 免费制作自己的微网站长沙建网站制作公司
  • 重庆涪陵网站设计公司推荐微信小程序一键生成链接
  • 通州网站建设公司宁夏区建设厅网站
  • 个人制作网站的流程建设工程查询系统
  • 网站建设公司怎么开拓业务有哪些企业可以做招聘的网站
  • 沭阳县建设局网站英语写作网站
  • 深圳做网站找谁有什么网站可以做商品展示的吗
  • 苏州运营推广网站建设好用的wordpress博客主题
  • 关于水果怎么做网站网站建设设计制作 熊掌号
  • 国外网站打不开怎么解决做云购网站
  • 百度注册域名免费建站马鞍山做网站公司
  • 呼市网站建设用wordpress教程视频
  • 网络营销导向企业网站建设的一般原则县城做网站的多么
  • 福州网站建设价格小程序开发公司简介
  • 合肥市建设网官方网站wordpress卡
  • 上海企业网站制作中建建设银行网站
  • iis7建立网站php发布post到wordpress
  • 顺德区网站设计网络营销的主要形式有建设网站
  • 最好建设网站网站开发了下载文件需要
  • soap公司网站免费网站模板下载
  • 网站建设_免费视频寻花问柳专注做一家男人最爱的网站
  • 景德镇市建设局建设信用网站做网站的就业前景
  • 网站建设与管理就业岗位主机开设成功 网站正在建设中
  • 小学校园网站建设简介计算机网站开发职业定位
  • 响应式企业网站cms九曲网站建设
  • 北京网站seo优化推广济南小程序开发多少钱
  • 网站首页建设中页面弘泽建设集团网站