如何将 POJO 保存到 SQLite 中并取回它们?

How to save POJOs into SQLite and get them back?

我正在以 JSON 的形式从 REST API 获取数据。

使用 http://www.jsonschema2pojo.org/,创建 类。我使用 GSON 将数据转换为 POJO。对象(大量对象)采用层次结构树的形式:父对象包括可以是

的子对象

我尝试过使用不同的 ORM:SugarORM、RushORM、SquiDB、JDXA。其中一些不支持关系(一对一、一对多、多对多)。其中一些需要添加注释。 JDXA不错,但是是付费的,而且映射配置也费了点功夫,我觉得太复杂了。

这个问题看起来像是在寻求图书馆推荐或"which tool to use",但实际上我不知道如何解决这个问题。

如何将这些 POJO 保存到 SQLite 关系表中并在需要时以高效的方式(在更短的时间内)取回它们?我应该使用 ORM 吗?或者我应该自己写插入和选择代码?

是的,为了保存 POJO,您需要使用 ORM。 有不同的 3rd 方库提供 ORM

ActiveAndroid:http://www.activeandroid.com/

OrmLite:http://ormlite.com/

绿道:https://github.com/greenrobot/greenDAO

如果速度是您主要关心的问题,那么编写您自己的查询将是最有效的,因为所有这些库都具有使它们通用的开销逻辑。

我总是会使用 ORM,因为它可以节省开发时间并且速度差异不会很大。如果您定期 loading/saving 5000 多个对象,我只会担心 ORM 太慢。这是基于编写 RushOrm 时所做的基准测试。