2012-01-25 10 views
8

पर कनवर्ट करें मैंने एंड्रॉइड पर अपने SQLite डीबी पर कुछ क्वेरी निष्पादित की है।स्क्लेइट कर्सर के परिणाम मेरी ऑब्जेक्ट

मुख्य इस्तेमाल किया अनुदेश यह है:

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

अब मैं इस क्वेरी के परिणामों एक सामान्य वर्ग मैं इस परियोजना में बना लिया है करने के लिए परिवर्तित किया जा करना चाहते हैं। अगर आपको लगता है कि मैं एक ओआरएम सिस्टम चाहता हूं, तो आप सही हैं, लेकिन अब मुझे लगता है कि ओआरएम सिस्टम हैं जो डीबी से पूछना चाहते हैं, डीबी में ऑब्जेक्ट्स को सेव करना और डीबी को ही प्रबंधित करना चाहते हैं। इसके बजाय मुझे एक 'सरल' ओआरएम सुविधा की आवश्यकता है जो कि google.gson लाइब्रेरी जेएसओएन तारों के साथ करता है, यह जेएसओएन तारों को कस्टम ऑब्जेक्ट्स में परिवर्तित करता है, और मैं वही चाहता हूं लेकिन SQLite कर्सर को मेरी कक्षाओं में परिवर्तित करने के लिए चाहता हूं।

कोई सुझाव यह कैसे करें?

+0

क्या दृष्टिकोण आप अंततः उपयोग किया था? – j10

उत्तर

12

मुझे नहीं लगता कि ऐसा करने का एक स्वचालित तरीका है। बस ऑब्जेक्ट को स्वयं पॉप्युलेट करें।

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

आप अपनी खुद की कर्सर कक्षा में इस समारोह में लपेट कर सकता प्रक्रिया पारदर्शी बनाने के लिए: उदाहरण के लिए, यदि आपका कर्सर सिर्फ एक आईडी और एक नाम था और आप एक व्यक्ति वस्तु बनाने के लिए करना चाहता था।

+0

स्तंभ नाम गतिशील रूप से उत्पन्न होते हैं, जो प्रारंभ में नहीं जानते हैं। मैं उन मानों को JSON स्ट्रिंग में कैसे परिवर्तित कर सकता हूं। JSON स्ट्रिंग को परिवर्तित करने का कोई और तरीका है? – Karthick

4

चेक बाहर MicroOrm

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

SomeObject object = microOrm.fromCursor(cursor, SomeObject.class); 
संबंधित मुद्दे