在开发 Madoka 日记时,做到导出导入的功能时,我想偷个懒导出直接用 Gson 将 Java 对象转换为 json 然后放在 txt 中,导入的时候再将 json 转为 javaBean 就行啦。
而数据库我用的是 Litepal 直接搞,使用这个库的好处就是速度快,方便,适合新手。
但其实 sqlite 的语法和一些其他的语句并不难,所以用这个库就是为了方便…
使用 Litepal 储存数据时,需要调用 save() 方法。
这里我就遇到了一个问题,明明 save() 方法返回的是 true ,但数据库里没有需要保存的数据啊?
Gson gson = new Gson();
Diary diary = gson.fromJson(json, Diary.class);
return diary.save();
这是调用 Gson 将 json 转换为 javabean 对象。
明明 Diary 的内容全是正确的,我开始询问度娘。
结果没找到跟我的问题直接相关的文章,结果我看到了有个人在吐槽啥 setting getting,我就想到了会不会是因为没有调用 Diary 的构造方法?
Diary 作为一个 Litepal 的,它是继承自 LitePalSupport 的,会不会是因为没有调用 LitePalSupport 的构造方法呢?
我将导入代码改了一下:
Gson gson = new Gson();
Diary diary = gson.fromJson(json, Diary.class);
Diary saveDiary = new Diary();
saveDiary.setId(diary.getId());
saveDiary.setCreatedTime(diary.getCreatedTime());
saveDiary.setLastUpdatedTime(diary.getLastUpdatedTime());
... 省略一万个代码
return saveDiary.save();
果然,最后正常了…
(水文真开心)