में उपयोग करने के लिए ORMLite के साथ एंड्रॉइड कर्सर क्या कोई तरीका है, क्वेरी के लिए कर्सर कैसे प्राप्त करें, जिसे मैं ORMLite दाओ ऑब्जेक्ट के साथ संसाधित कर रहा हूं?कर्सर एडाप्टर
उत्तर
ORMLite अब next()
, previous()
, moveRelative(offset)
... CloseableIterator
class पर तरीकों का समर्थन करता है। इससे आपको इच्छानुसार अंतर्निहित Cursor
ऑब्जेक्ट को स्थानांतरित करने की अनुमति मिलनी चाहिए।
यह भी निम्नलिखित डीएओ कर्सर तरीकों का समर्थन करता है:
dao.mapSelectStarRow(databaseResults)
वापसीselect *
के लिए एक क्वेरी से डेटाबेस परिणाम से नवीनतम पंक्ति। इसके साथ आप कर्सर स्थान बदल सकते हैं (उदाहरण के लिए) और फिर वर्तमान ऑब्जेक्ट प्राप्त करें।dao.getSelectStarRowMapper()
एक नक्शा प्रदान करता है जिसका उपयोग आप दाओ के बाहर ऑब्जेक्ट को मैप करने के लिए कर सकते हैं।
आप ORMLite के साथ अपने स्वयं क्वेरी का निर्माण कर रहे हैं, तो आप QueryBuilder
वस्तु का उपयोग करें। queryBuilder.prepare()
एक PreparedQuery
देता है जिसका उपयोग डीएओ में विभिन्न विधियों द्वारा किया जाता है। आप dao.iterator(preparedQuery)
पर कॉल कर सकते हैं जो CloseableIterator
लौटाएगा जिसका उपयोग परिणामों के माध्यम से करने के लिए किया जाता है। DatabaseResults
कक्षा तक पहुंच प्राप्त करने के लिए iterator.getRawResults()
है। एंड्रॉइड के तहत, इसे AndroidDatabaseResults
पर डाला जा सकता है जिसमें एंड्रॉइड Cursor
वापस करने के लिए getCursor()
विधि है।
कुछ निम्न कोड की तरह:
// build your query
QueryBuilder<Foo, String> qb = fooDao.queryBuilder();
qb.where()...;
// when you are done, prepare your query and build an iterator
CloseableIterator<Foo> iterator = dao.iterator(qb.prepare());
try {
// get the raw results which can be cast under Android
AndroidDatabaseResults results =
(AndroidDatabaseResults)iterator.getRawResults();
Cursor cursor = results.getRawCursor();
...
} finally {
iterator.closeQuietly();
}
इसमें कुछ समय जटिल है, लेकिन आप निश्चित रूप से हैं घाटी के पीछे सहकर्मी इस वस्तु जो डेटाबेस अमूर्त वर्गों द्वारा छिपा हुआ है करने के लिए हो रही है।
यदि आपका मतलब दाओ विधियों को बनाने के लिए getHelper()
विधि है, तो आपको केवल OrmLiteBaseActivity<YourDBHelper>
से उत्तराधिकारी होना होगा और आप इसे कॉल कर सकते हैं। यह इस तरह sth दिखेगा:
public class YourClass extends OrmLiteBaseActivity<YourDBHelper> {
@Override
protected void onCreate(Bundle savedInstanceState) {
...
getHelper().getDao().queryForAll();
...
}
}
आप कर्सर मतलब तो डेटाबेस कार्रवाई को संभालने के लिए: मुझे नहीं लगता कि आप इसे तक पहुँच सकते हैं है! लेकिन मुझे समझ में नहीं आता कि आपको इसकी आवश्यकता क्यों है। ORMLite कर्सर के लगभग सभी कार्यों है। तो आपको इसके लिए क्या चाहिए?
मुझे इसके बारे में पता है, लेकिन मुझे कर्सर एडाप्टर में इसका उपयोग करने की आवश्यकता है। – sealskej
क्या आपने this पोस्ट से ग्रे की कुछ सलाह दी है? वह बताता है कि आप कॉलम को दूसरे नाम के रूप में कैसे चुन सकते हैं, जैसे आईडी को _id के रूप में चुनें।
चूंकि आप अपने कॉलम को ऑर्मेलाइट में नाम दे सकते हैं, मुझे लगता है कि क्यों नहीं चुनने के बजाय उन्हें सिर्फ _id नाम दें? – AgentKnopf
निश्चित रूप से, आप कर सकते हैं, लेकिन एक उदाहरण में जहां उनका नाम बदलना एक विकल्प नहीं है, आप बस "as" के एसक्यूएल सिंटैक्स का उपयोग करते हैं;) –
सच है कि, आपको एक बिंदु मिला है :) – AgentKnopf
यदि आप एक गतिविधि में हैं और QueryBuilder के साथ गड़बड़ नहीं करना चाहते हैं तो निम्न को जाने दें, जो कि उतना ही प्रभावी है।
Cursor cursor = getHelper().getReadableDatabase().query(tableName, projection, selection, selectionArgs, groupBy, having, sortOrder)
- 1. कर्सर एडाप्टर बनाम संसाधन कर्सर एडाप्टर
- 2. एक कर्सर एडाप्टर
- 3. कर्सर एडाप्टर एंड्रॉइड
- 4. SimpleCursorAdapter और कर्सर एडाप्टर
- 5. कस्टम सरल कर्सर एडाप्टर
- 6. एक कर्सर एडाप्टर
- 7. SimpleCursorAdapter बनाम कर्सर एडाप्टर?
- 8. कस्टम कर्सर एडाप्टर
- 9. एंड्रॉइड में ऐरे एडाप्टर और कर्सर एडाप्टर के बीच अंतर
- 10. क्या कर्सर एडाप्टर का उपयोग करना है?
- 11. बचाने एंड्रॉयड चेकबॉक्स राज्य कर्सर एडाप्टर
- 12. एंड्रॉइड एसक्यूलाइट लीक समस्या कर्सर एडाप्टर
- 13. GetView बनाम। एक कस्टम कर्सर एडाप्टर में BindView?
- 14. कर्सर एडाप्टर बनाम ArrayAdapter सूची सूची के लिए
- 15. एंड्रॉइड 4.0.3 कर्सर एडाप्टर परिवर्तन पर ListView को पॉप्युलेट नहीं करता है कर्सर
- 16. "एडाप्टर" या "एडाप्टर"?
- 17. एडाप्टर
- 18. एडाप्टर
- 19. एडाप्टर
- 20. व्यूफ्लिपर बनाम एडाप्टर व्यूफ्लिपर
- 21. माउस एडाप्टर एडाप्टर क्यों है?
- 22. ऑटोकंपलेटटेक्स्ट व्यू एडाप्टर, "छुपा" एडाप्टर?
- 23. बिज़टॉक एडाप्टर पैक इंस्टॉल - डब्लूसीएफ-एसक्यूएल एडाप्टर
- 24. कर्सर के अंदर कर्सर
- 25. कस्टम एडाप्टर
- 26. एडाप्टर क्लास
- 27. कस्टम एडाप्टर
- 28. रिवर्स_इटरेटर एडाप्टर
- 29. एडाप्टर व्यूइंग
- 30. तालिका एडाप्टर
मैं डेटाबेस कनेक्शन कैसे प्राप्त कर सकता हूं? – max4ever
मैंने यह जवाब दिखाने के लिए यह बदल दिया है कि डेटाबेस कनेक्शन की आवश्यकता के बिना इसे कैसे किया जा सकता है। – Gray
@Gray कर्सर का उपयोग करके list_item दृश्यों को बढ़ाने का सबसे अच्छा तरीका क्या है? साथ ही, 'OrmLiteBaseListActivity' के साथ उपयोग करने के लिए सबसे अच्छी बात 'कर्सर एडाप्टर' है? – theblang