Android 将SQLite游标的结果转换为我的对象

Android 将SQLite游标的结果转换为我的对象,android,cursor,gson,pojo,Android,Cursor,Gson,Pojo,我在Android上对SQLite数据库执行了一些查询 使用的主要说明如下: Cursor cursor = myDB.rawQuery(select, null); 现在,我希望将此查询的结果转换为我在项目中创建的泛型类。如果你认为我想要一个ORM系统,你是对的,但我现在发现的只是希望查询数据库、在数据库中保存对象和管理数据库本身的ORM系统 现在,我需要一个“简单”的ORM功能,它可以完全像google.gson库对JSON字符串所做的那样,将JSON字符串转换为自定义对象,我也需要同样的

我在Android上对SQLite数据库执行了一些查询

使用的主要说明如下:

Cursor cursor = myDB.rawQuery(select, null);
现在,我希望将此查询的结果转换为我在项目中创建的泛型类。如果你认为我想要一个ORM系统,你是对的,但我现在发现的只是希望查询数据库、在数据库中保存对象和管理数据库本身的ORM系统

现在,我需要一个“简单”的ORM功能,它可以完全像google.gson库对JSON字符串所做的那样,将JSON字符串转换为自定义对象,我也需要同样的功能,但需要将SQLite游标转换为我的类


有什么建议吗?

我认为没有一种自动化的方法可以做到这一点。只需自己填充对象。例如,如果光标只是一个id和一个名称,并且您希望创建一个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();
    }
}
您可以将此函数包装在自己的游标类中,使过程透明。

签出


列名是动态生成的,这些列名最初并不知道。如何将这些值转换为JSON字符串。?转换JSON字符串还有其他方法吗?您最终使用了什么方法?
private static class SomeObject {
  @Column(SOME_FIELD)
  private String mSomeField;
}

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