2012-01-25 23 views
8

Tôi đã thực hiện một số truy vấn trên db SQLite của tôi trên Android.Chuyển đổi kết quả của Sqllite Cursor thành đối tượng của tôi

hướng dẫn sử dụng chính là thế này:

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

Bây giờ tôi muốn các kết quả của truy vấn này được chuyển đổi sang một lớp chung tôi đã tạo ra trong dự án. Nếu bạn nghĩ rằng tôi muốn một hệ thống ORM, bạn là đúng, nhưng tất cả tôi đã tìm thấy bây giờ là hệ thống ORM muốn truy vấn DB, lưu các đối tượng trong DB và quản lý DB chính nó. Thay vào đó, tôi cần một tính năng ORM đơn giản có thể thực hiện chính xác thư viện google.gson thực hiện với các chuỗi JSON, nó chuyển đổi chuỗi JSON thành các đối tượng tùy chỉnh và tôi muốn giống nhau nhưng để chuyển đổi các con trỏ SQLite sang các Lớp của tôi.

Bất kỳ đề xuất nào về cách thực hiện việc này?

+0

tiếp cận những gì cậu cuối cùng sử dụng không? – j10

Trả lời

12

Tôi không nghĩ rằng có cách tự động để thực hiện việc này. Chỉ cần cư trú đối tượng mình. Ví dụ: nếu con trỏ của bạn chỉ là id và tên và bạn muốn tạo đối tượng 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(); 
    } 
} 

Bạn có thể bọc chức năng này trong lớp Con trỏ của riêng bạn để làm cho quá trình trong suốt.

+0

Tên cột được tạo tự động, những tên này không biết ban đầu. Làm thế nào tôi có thể chuyển đổi các giá trị đó thành chuỗi JSON.? Có cách nào khác để chuyển đổi chuỗi JSON không? – Karthick

4

Check-out MicroOrm

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

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