1. 程式人生 > >greenDAO的使用詳解---(3)greenDAO3.2.2資料庫的升級bug解決

greenDAO的使用詳解---(3)greenDAO3.2.2資料庫的升級bug解決

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()方法報錯,如下圖:

    錯誤原因就是int型別資料在資料庫中不能為null,所有我們在拼接sql語句的時候給int型別初始化一個預設值0,就可以完美解決這個問題,修改後的restoreData()方法如下圖: