2012-01-25 12 views
8

Android'de SQLite db'mde bazı sorgulamalar yürüttüm. kullanılanSqllite İmleci sonuçlarını benim nesnelime dönüştürme

Ana talimat şudur:

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

Şimdi bu sorgunun sonuçları Ben projede oluşturduk jenerik sınıfa dönüştürülmesini istiyoruz. Bir ORM sistemi istediğimi düşünüyorsanız, haklısınız, ancak şimdi bulduğum her şey DB'yi sorgulamak, DB'deki nesneleri kaydetmek ve DB'nin kendisini yönetmek isteyen ORM sistemleridir. Bunun yerine, google.gson arşivinin JSON dizeleriyle tam olarak ne yaptığını yapabilen bir 'basit' ORM özelliğine ihtiyacım var, JSON dizelerini özel nesnelere dönüştürüyor ve aynı şeyi istiyorum ancak SQLite imleçlerini Sınıflarıma dönüştürmek için istiyorum.

Bunu nasıl yapacağınıza dair herhangi bir öneriniz var mı?

+0

nihayet hangi yaklaşım kullandı? – j10

cevap

12

Bunu yapmanın otomatik bir yolu olduğunu sanmıyorum. Sadece nesneyi kendin doldur. Kendi İmleç sınıfında bu işlevi sarabilirdiniz

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(); 
    } 
} 

sürecin şeffaf hale getirmek için: imleci sadece bir kimlik ve bir isim olduğunu ve eğer Örneğin, bir Kişi nesnesi yaratmak istedik.

+0

Sütun adları dinamik olarak oluşturulur, başlangıçta bilemezler. Bu değerleri JSON dizesine nasıl dönüştürebilirim? JSON dizesini dönüştürmenin başka bir yolu var mı? – Karthick

4

Kontrol dışarı MicroOrm

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

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