gson 将SQLite光标的结果转换为我的对象

jckbn6z7  于 2022-11-23  发布在  SQLite
关注(0)|答案(2)|浏览(185)

我在Android上的SQLite DB上执行了一些查询。
使用的主要指令如下:

Cursor cursor = myDB.rawQuery(select, null);

现在我希望这个查询的结果被转换成我在项目中创建的一个泛型类。如果你认为我需要一个ORM系统,你是对的,但是我现在发现的只是一些ORM系统,它们想要查询数据库,在数据库中保存对象,并管理数据库本身。
相反,现在我需要一个"简单"的ORM功能,它可以做谷歌。gson库对JSON字符串所做的事情,它将JSON字符串转换为自定义对象,我想要同样的,但将SQLite光标转换为我的类。
有什么建议吗?

olhwl3o2

olhwl3o21#

我不认为有一种自动化的方法可以做到这一点。只要自己填充对象就可以了。例如,如果你的光标只是一个id和一个name,而你想创建一个Person对象:

Person populatePerson(Cursor cursor)
{
    try
    {
        int idIndex = cursor.getColumnIndexOrThrow("_id");
        int nameIndex = cursor.getColumnIndexOrThrow("name");
        long id = cursor.getLong(idIndex);
        String name = cursor.getString(nameIndex);
        return new Person(id, name);
    }
    catch (Exception e)
    {
        e.printStackTrace();
    }
}

您可以将此函数 Package 在自己的Cursor类中,以使该过程透明。

uemypmqf

uemypmqf2#

checkout MicroOrm

private static class SomeObject {
  @Column(SOME_FIELD)
  private String mSomeField;
}

SomeObject object = microOrm.fromCursor(cursor, SomeObject.class);

相关问题