greenDAO的使用详解---(3)greenDAO3.2.2数据库的升级bug解决

1.解决上一篇遗留的bug

原因分析: 当某张表需要添加一个int类型的列时,升级数据库则会报NOT NULL约束不通过,原因是 GreenDao建表时int 类型 加了NOT NULL

  1. 解决方案一:在bean对象中不使用int类型属性,直接使用int的包装类Integer或者String代替,个人感觉这是最简单的方式。
  2. 解决方案二:通过报错信息,我们可以发现是MigrationHelper.java类中的restoreData()方法报错,如下图:


    image

    错误原因就是int类型数据在数据库中不能为null,所有我们在拼接sql语句的时候给int类型初始化一个默认值0,就可以完美解决这个问题,修改后的restoreData()方法如下图:


    image
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,742评论 18 399
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,975评论 25 708
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,767评论 0 33
  • 柏拉图以苏格拉底的口展示出他对城邦发展的想法,他提出要建设一个哲人王政体,以此来带领人们走向幸福。 在这本书中,存...
    鲸北晨阅读 2,041评论 2 14
  • 昨天下午从从拉萨出发,经过一夜的奔波,于今天下午到达兰州,兰州的天空与拉萨有很大不同,灰蒙蒙的,心情多少有点压抑,...
    一笑人生阅读 496评论 4 12