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

我已经对Android上的SQLite数据库执行了一些查询。

使用的主要指令是这样的:

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

现在我想把这个查询的结果转换成我在项目中创build的generics类。 如果你认为我想要一个ORM系统,那么你是对的,但是我现在发现的所有ORM系统都是想查询数据库,在数据库中保存对象并pipe理数据库本身。 现在我需要一个简单的ORM特性,它可以完成google.gson库对JSONstring所做的工作,它将JSONstring转换为自定义对象,而且我希望将SQLite光标转换为我的类。

任何build议如何做到这一点?

Solutions Collecting From Web of "将Sqllite光标的结果转换为我的对象"

我不认为有一个自动的方式来做到这一点。 只需自己填充对象。 例如,如果你的光标只是一个id和一个名字,你想创build一个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(); } } 

你可以把这个函数包装在你自己的Cursor类中,使这个过程透明。

看看MicroOrm

 private static class SomeObject { @Column(SOME_FIELD) private String mSomeField; } SomeObject object = microOrm.fromCursor(cursor, SomeObject.class);