Android विकास के लिए कोई अच्छा ORM उपकरण? [बन्द है]


285

एंड्रॉइड ('gPhone') पर काम करने वाले किसी भी व्यक्ति के पास एक ऐसी जगह है, जहां मुझे इसके लिए एक अच्छा ORM टूल मिल सकता है? कोड जावा में लिखा है, और डेटाबेस SQLite है। जो मैं खोजना चाहता हूं वह एक उपकरण है जो ऑब्जेक्ट की परिभाषा देता है, तालिकाओं और सीआरयूडी फ़ंक्शन (जो भयानक होगा) को ऑटो-जनरेट कर सकता है, या, इसे रोककर, एक टूल जो टेबल की परिभाषा, ऑब्जेक्ट की परिभाषा ले सकता है, और CRUD कार्यक्षमता को स्वतः उत्पन्न करता है। रगड़ यह है कि यह सब एंड्रॉइड फ्रेमवर्क के भीतर होना चाहिए, जो कि डेटाबेस एक्सेस कैसे काम करता है के रूप में अपने स्वयं के सम्मेलन हैं।


मुझे नहीं लगता कि अब कोई उपलब्ध हैं।
मपराज

2
इसके 2014. मैंने सोचा कि मैं स्प्रिंकल्स ( github.com/emilsjolander/sprinkles ) का उल्लेख करूंगा क्योंकि किसी ने भी इसका उल्लेख नहीं किया है .. गिथब पर 500 सितारे, मध्य में, सामग्री पर्यवेक्षकों, जांच के लायक
Android'ecko

यह 2015 है। सॉफ्टवेयर ट्री ने हाल ही में JDXA जारी किया है , जो एंड्रॉइड के लिए एक सरल, शक्तिशाली और लचीला ORM है। विरासत का समर्थन करता है, एक से एक, एक से कई, कई से एक, और कई से कई रिश्ते। JDXA के POJO (सादे पुराने जावा ऑब्जेक्ट्स) अनुकूल गैर-घुसपैठ प्रोग्रामिंग मॉडल आपको किसी भी तरह से अपने जावा वर्गों को बदलने की आवश्यकता नहीं है: - किसी भी आधार वर्ग से अपने डोमेन वर्गों को उप-वर्ग करने की आवश्यकता नहीं है - एनोटेशन के साथ अपने स्रोत कोड को अव्यवस्थित करने की आवश्यकता नहीं है - DAO वर्गों के लिए कोई ज़रूरत नहीं - कोई स्रोत कोड पीढ़ी नहीं
दामोदर पेरीवाल


यदि आप अतिरिक्त लाइब्रेरी निर्भरता के बिना सादे प्राकृतिक एंड्रॉइड कोड पसंद करते हैं, तो SQLite पीयर क्लास कोड जनरेटर उदाहरण देखें । यह एनोटेशन आधारित है और संयुक्त प्राथमिक कुंजियों, संयुक्त अद्वितीय बाधाओं और अनुक्रमण का समर्थन करता है।
रॉकीग्युई

जवाबों:


111

मैंने सोचा कि मैं अपने $ 0.02 को अपने ORMLite पैकेज के बारे में यहाँ जोड़ दूँगा

यह हाइबरनेट के लिए एक हल्का प्रतिस्थापन है और एंड्रॉइड पर SQLite का समर्थन करने के लिए देशी एंड्रॉइड ओएस डेटाबेस कॉल का उपयोग करता है। यह अन्य आर्किटेक्चर पर JDBC का उपयोग करके कई अन्य डेटाबेस प्रकारों का भी समर्थन करता है। हमारे पास ORMLite प्रश्नों के लिए एक Android मेलिंग सूची है


1
क्या ORMLite ने (एक | कई) के समर्थन में अंतर्निहित (कई | एक) रिश्ते बनाए हैं? मुझे उस पर ज्यादा जानकारी नहीं मिल रही है ... यदि नहीं, तो क्या इसके लिए कोई योजना है?
ferdystschenko

1
"समर्थन" से आपका क्या अर्थ है, इस पर निर्भर करता है। "विदेशी वस्तुओं" का उपयोग करने के बारे में कुछ उदाहरण कोड हैं जो आप एक-से-कितने हैं और कई-से-कई ( ormlite.com/docs/examples ) को पूरा करने के लिए तालिकाओं का उपयोग करने के तरीके पर उदाहरण हैं । अधिक प्रश्नों के साथ उपयोगकर्ता सूची में पोस्ट करें ( group.google.com/group/ormlite-user )।
ग्रे

7
हाँ, यह निश्चित रूप से ActiveAndroid से बड़ा है। पाठ्यक्रम के रूप में बहुत अधिक कार्यक्षमता। एए के लाइसेंस के विपरीत फ्रीवेयर भी। लेकिन अगर आकार लक्ष्य है, तो ओर्मालाइट आपके लिए नहीं है।
ग्रे

4
@Gray Ironic चूंकि यह "लाइट" माना जाता है: पी
सलमान वॉन अब्बास

5
वास्तव में @SalmanPK हालांकि लाइट की अलग-अलग डिग्रियां हैं। :-)
ग्रे

66

यह सवाल उम्र नहीं कर सकता है, लेकिन सुझाए गए ढांचे कर सकते हैं। तो, यहाँ पहली सूची है जो मुझे तुलना के लिए ऐसे ढांचे में महत्वपूर्ण लगती है:

  • वहाँ एक मावेन या ग्रैडल कलाकृति है? (यह एक बड़ा प्लस है कि आप मावेन या ग्रेडेल का उपयोग करते हैं, इस पर निर्भर करता है)
  • क्या गतिविधि का न्याय करने के लिए कमिट पर एक तेज़ अवलोकन सहित एक आसान तरीके से कोड सुलभ है? (जीथूब पर होस्ट किया गया कोड मेरे लिए उस मामले में एक निश्चित प्लस है)
  • रिलीज़ प्रबंधन: क्या इसके लिए रिलीज़ / रिलीज़ टैग और कलाकृतियाँ हैं? (कुछ ऐसे हैं जिन्हें गितुब पर होस्ट किया गया है और या तो गिट क्लोन की आवश्यकता है या डाउनलोड के लिए मास्टर टैरबॉल की पेशकश करें - मेरे लिए एक बड़ा माइनस यदि रिलीज़ टैग भी सेट नहीं हैं और README में संबोधित किए गए हैं)
  • आकार के मामले में मैं कुछ संकेत देता हूं जहां इसे प्राप्त करना आसान था (मैंने कुछ भी डाउनलोड नहीं किया, इसलिए उन परियोजनाओं से जो कोई रिलीज कलाकृतियों की पेशकश करते हैं, कोई आकार नहीं हैं)

और यहां ऊपर दिए गए बिंदुओं पर नोट्स के साथ चौखटे की एक सूची है। मैंने कुछ और एबिटिस और हाडी को देखा, लेकिन मैंने केवल उन्हीं को जोड़ा, जिनकी 2011 के बाद कुछ गतिविधि थी।

मैंने उनमें से किसी की भी कोशिश नहीं की है, लेकिन शायद आजकल के सक्रिय प्रोजेक्ट्स को सूचीबद्ध करके मैं वर्तमान पाठकों को थोड़ा समय दे सकता हूं। कृपया एक टिप्पणी जोड़ें यदि आप अन्य परियोजनाओं के बारे में जानते हैं जो उपरोक्त कुछ बिंदुओं को पूरा करते हैं और कुछ गंभीर विकास (कुछ समय से अधिक) चल रहे हैं।

EDIT (2013 Nov): परियोजनाओं की वर्तमान स्थिति के लिए सूची को अद्यतन किया। इनमें से कुछ ने अपने जीथूब रिपोज के साथ-साथ मावेन / ग्रैडल समर्थन के लिए रिलीज़ टैग जोड़े हैं। अच्छा कार्य!

EDIT (2015 अप्रैल): सूची को अपडेट किया, स्प्रिंकल्स (@AndroidGecko द्वारा टिप्पणी के अनुसार) और Realm.io को जोड़ा।


मैं जोर से दायरे का उपयोग करने की सलाह देता हूं, यह वास्तव में तेजी से और काम करने के लिए तरल है!
क्रोनो

39

यदि प्रदर्शन और कोड आकार मायने रखता है, तो ग्रीनडीएओ की जांच करें । मैं इसका लेखक हूं, और एक और ओआरएम बनाने की मेरी प्रेरणा हॉटस्पॉट में प्रतिबिंब से बचने के लिए थी। यह पता चला कि GreenDAO ORMLite से 4 गुना अधिक तेज हो सकता है। विवरण के लिए सुविधा पृष्ठ चेकआउट करें।


5
काफी अच्छा लग रहा है, लेकिन मेरे लिए
दावो

4
हां, जनरेटिंग कोड डेवलपर्स के लिए एक अतिरिक्त कदम है, लेकिन यह आपको ऐप में शानदार प्रदर्शन से बचाता है। दोनों बूटस्ट्रैपिंग और पार्सिंग डेटाबेस परिणाम काफी तेज हैं। अन्य उपकरण प्रतिबिंब पर भरोसा करते हैं, जो एंड्रॉइड में क्रूरतापूर्ण है।
मार्कस जुंगिंगर

1
मैं अपनी परियोजनाओं में ग्रीनडाउ का उपयोग कर रहा हूं, और मैं इससे बहुत प्रसन्न हूं।
mabac

3
@greenrobot में आपके लिबास का उपयोग करके "बड़े ऐप्स" के कुछ शोकेस हैं?
StErMi

1
@StErMi Path ग्रीनडीएओ का उपयोग कर रहा है। उनके पास> 1 M इंस्टॉल है। देखिए github.com/greenrobot/greenDAO/issues/20#issuecomment-13278922
मार्कस जुंगिंगर

10

मुझे ऐसी किसी भी चीज़ के बारे में नहीं पता है जो आप पूछ रहे हैं, लेकिन SQLite का एक विकल्प है कि आप उपयोगी हो सकते हैं यदि आपकी वास्तुकला की आवश्यकताएं लचीली हैं। यह db4o की जाँच के लायक हो सकता है :


मेरे पास DB40 के साथ अच्छे परिणाम थे ... चेकआउट एक्टिव एंड्रॉइड हालांकि ...
बेन

1
activeandroid.com दिखता शांत, मैं इसे एक स्पिन देने के लिए आगे देख रहा हूँ
SLF

9

ActiveAndroid ($ 20) ऐसा लगता है कि जैसा आपको चाहिए वैसा ही हो सकता है।


14
मुझे पता है कि आप यहां कुछ भी नहीं कर रहे हैं, लेकिन क्या आप एसओ पर अपने स्वयं के उत्पादों का उल्लेख करते हुए अपनी पोस्ट में अपनी संबद्धता का खुलासा कर सकते हैं? मुझे पता है कि आपका नाम लिंक किए गए पृष्ठ के पाद लेख में है, लेकिन हम एस्ट्रोटर्फिंग (जो ऐसा नहीं है) पर दरार डालने की कोशिश कर रहे हैं , इसलिए हम सभी को एक ही प्रकटीकरण दिशानिर्देशों का पालन करने के लिए कह रहे हैं। धन्यवाद।
छिपकली का बिल

4
सिर्फ एक सिर ऊपर, ActiveAndroid मुक्त नहीं है।
gak

7
ActiveAndroid अब स्वतंत्र और खुला-स्रोत है - pardom.github.com/ActiveAndroid
माइकल पार्डो

7

मुझे ActiveAndroid पसंद आया। यह विशेष रूप से Android के लिए लिखा है ऐसा लगता है। यह मेरे लिए एक प्लस की तरह लगता है।

मेरे पास रेल के अनुभव पर कुछ रूबी हैं और यदि आपको ActiveRecord के रेल मार्ग पसंद हैं तो आप बहुत जल्दी इस लाइब्रेरी के साथ आगे बढ़ सकते हैं।

https://www.activeandroid.com/


अच्छी रूपरेखा, लेकिन यह org.codehous.jackson लाइब्रेरी के साथ टकराव करता है, इसलिए यदि आप इसे अपने प्रोजेक्ट में उपयोग करते हैं तो आप ActveAndroid का उपयोग करने में असमर्थ होंगे
endryha

1
यह कैसे संघर्ष करता है? क्या आपने इसे tracker.activeandroid.com के बग के रूप में रिपोर्ट किया था ?
माइकल पार्डो

शायद androrm.the-pixelpla.net पर एक नज़र है। इसमें अधिकांश विशेषताएं हैं और मैं कुछ और भी कहूंगा। प्लस: यह स्वतंत्र और खुला स्रोत है।
philgiese


6

मैं भी Android पर एक ORM की तलाश कर रहा हूं। मैंने ActiveAndroid , NeoDatis और db4o का परीक्षण किया , और मुझे लगता है कि मैं अंतिम दो में से एक का उपयोग करूँगा।

NeoDatis और db4o वास्तव में समान हैं, इसलिए मैं सबसे अच्छा एक चुनने के लिए कुछ सलाह चाहूंगा। क्या कोई उनकी परियोजना पर उनमें से एक का उपयोग कर रहा है? मैं इसे मुफ्त और सशुल्क ऐप के लिए उपयोग करूंगा, लेकिन ऐसा लगता है कि दोनों ने Android के लिए कोई लाइसेंस सीमा नहीं रखी है।

यहाँ एक बेंचमार्क है जो यह कहता प्रतीत होता है कि NeoDatis db4o की तुलना में तेज़ है, लेकिन मुझे नहीं पता कि क्या हम इस पर अपनी राय को आधार बना सकते हैं।


Db40 और NeoDatis ऑब्जेक्ट डेटाबेस हैं, इनमें से सिर्फ आकार एंड्रॉइड पर किसी भी उपयोग के लिए पूरी तरह से निषेधात्मक है
बोसोन

@ DroidIn.net क्या आप एक लिंक प्रदान कर सकते हैं जो आपकी टिप्पणी का समर्थन करता है?
सर्जियो

3

एक और नवागंतुक: Android- सक्रिय-रिकॉर्ड। यह SQLite http://code.google.com/p/android-active-recic/ द्वारा समर्थित एंड्रॉइड के लिए उपयोग की दृढ़ता के लिए बहुत हल्का और आसान है


शुरुआती विकास में अभी भी इसकी तरह दिखता है, लेकिन ध्यान रखने योग्य है!
GWLlosa

कोशिश की - यह अच्छी शुरुआत है, लेकिन प्राइम टाइम के लिए तैयार होने के लिए बहुत काम करने की जरूरत है
बोसोन

2

AptR से ActiveRecordJS एक जावास्क्रिप्ट ORM है जिसे gPhone पर चलना चाहिए। इसे जैक्सर और गियर्स के साथ काम करने के लिए बनाया गया है। जब आप जैक्सन एडेप्टर को यूजर करते हैं, तो आप SQLLite से कनेक्ट कर सकते हैं।

अद्यतन: मुझे नहीं लगता कि मैंने इसे स्पष्ट कर दिया है, लेकिन ActiveRecordJS एक ORM है जो क्लाइंट साइड चलाता है, जो कि gPhone पर आपके लिए एक फायदा हो सकता है।


जावा कोड में? या जावास्क्रिप्ट कोड में?
GWLlosa

मुझे पूरा यकीन है कि आप जिस बारे में बात कर रहे हैं वह एक जावास्क्रिप्ट समाधान है जिसका उद्देश्य पूरी तरह से ब्राउज़र-आधारित (वेब) अनुप्रयोगों के लिए है। मैं यह नहीं देखता कि यह एंड्रॉइड के लिए मूल एप्लिकेशन विकास से कैसे संबंधित है।
ब्रायन लैसी


1

मैंने Android के लिए JPA ORM का अपना कार्यान्वयन विकसित किया है। यह अभी तक पूरी तरह से पूर्ण नहीं है, लेकिन आप @Entity, @Id, @Column एनोटेशन के साथ वर्ग को एनोटेट कर सकते हैं और आपको JPA इकाइयाँ मिलती हैं जिन्हें SQLite डेटाबेस से संग्रहीत और पुनर्प्राप्त किया जा सकता है। इसे पब्लिक में पोस्ट करने से पहले मुझे कुछ और फीचर्स और क्लीनअप की जरूरत होगी, लेकिन अगर इसमें पर्याप्त रुचि हो तो यह मेरे प्रयास को तेज कर सकता है।


दिलचस्प लगता है, क्या आप पहले से ही s.th. कोशिश करने के लिए / पर एक नज़र है? चीयर्स, मार्टिन
मार्टिनगोट्ज़के

एक वर्ष से अधिक समय बाद, इस पर प्रगति कैसे हुई है? Android पर JPA + एनोटेशन बहुत अच्छा लगता है!
स्पाइडी

1

हालांकि यह एक पुराना पद है, फिर भी विषय प्रासंगिक है। इसलिए, मैं प्रश्न में वर्णित अधिकांश मुद्दों को हल करने के लिए एक दिलचस्प लेख और अच्छा दृष्टिकोण साझा करना चाहता हूं:

http://blog.codecentric.de/en/2011/04/android-persistence-accelerated-small-inhouse-orm/

आशा है कि कोई भी इसे खुद के रूप में उपयोगी पाता है!


1

मेरा अपना DroidParts /http://droidparts.org/ बस v0.5 तक पहुंच गया। यह एक DI / ORM पुस्तकालय और अधिक है।
बहुत अधिक प्रलेखन नहीं है, लेकिन एक नमूना ऐप शामिल है।


1
उचित दस्तावेज जोड़ना एक अच्छा विचार हो सकता है।
सबिन सेबेस्टियन

0

Db4o (v। 8) के साथ नकारात्मक अनुभव था: अनुक्रमण ठीक से काम नहीं किया (अपवाद आदि)। इसलिए मैंने प्रबंधित नहीं किया कि ऑब्जेक्ट संरचना में ऑब्जेक्ट होने पर विदेशी तालिकाओं में डुप्लिकेट बनाने से कैसे बचें। मेरे प्रश्न में अधिक विस्तृत विवरण । आशा है एक दिन यह बेहतर होगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.