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()方法报错,如下图:


    greenDAO的使用详解---(3)greenDAO3.2.2数据库的升级bug解决_第1张图片
    image

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


    greenDAO的使用详解---(3)greenDAO3.2.2数据库的升级bug解决_第2张图片
    image

你可能感兴趣的:(greenDAO的使用详解---(3)greenDAO3.2.2数据库的升级bug解决)