2010-03-07 13 views
58

यह सिर्फ सैद्धांतिक प्रश्न है।जावा - जेडीबीसी विकल्प

मैं डेटाबेस का उपयोग करने के लिए अपने जावा अनुप्रयोगों के साथ जेडीबीसी का उपयोग करता हूं (चयन, सम्मिलित, अद्यतन, हटाएं या जो कुछ भी)। मैं "मैन्युअल रूप से" जावा क्लास बना देता हूं जिसमें डीबी टेबल (विशेषता = डीबी कॉलम) से डेटा होगा। फिर मैं प्रश्न (परिणामसेट) बना देता हूं और उन कक्षाओं को डेटा के साथ भरता हूं। मुझे यकीन नहीं है, अगर यह सही तरीका है।

लेकिन मैंने जेडीओ और एक और दृढ़ता समाधान के बारे में बहुत कुछ पढ़ा है।

क्या कोई व्यक्ति अपने अनुभव के आधार पर सर्वोत्तम उपयोग किए जाने वाले जेडीबीसी विकल्पों की सिफारिश कर सकता है?

मैं जेडीबीसी (सरल शब्दों में) पर जेडीओ के फायदे जानना चाहूंगा।

मैं इस सामान को बहुत से Google पर क्लिक करने में सक्षम हूं, लेकिन "पहले हाथ" की राय हमेशा सर्वोत्तम होती है।

धन्यवाद

उत्तर

121

जावा में डेटाबेस हठ की कहानी पहले से ही लंबी और मोड़ से भरा हुआ है और बदल जाता है:

  • JDBC निम्न स्तर एपीआई कि हर कोई अंत में का उपयोग करता है एक डेटाबेस के लिए बात करने के लिए है। लेकिन एक उच्च स्तरीय एपीआई का उपयोग किए बिना, आपको अपने सभी कामों को स्वयं करना होगा (एसक्यूएल प्रश्न लिखना, ऑब्जेक्ट्स के परिणाम मैप करना आदि)।

  • EJB 1.0 सीएमपी इकाई बीन्स एक उच्च स्तर एपीआई के लिए एक पहली कोशिश थी और सफलतापूर्वक बड़े जावा ईई प्रदाताओं (बीईए, आईबीएम) लेकिन उपयोगकर्ताओं द्वारा नहीं द्वारा अपनाया गया है। एंटिटी बीन्स बहुत जटिल थे और बहुत ज्यादा ओवरहेड था (समझते हैं, खराब प्रदर्शन)। असफल!

  • EJB 2.0 सीएमपी स्थानीय इंटरफेस की शुरूआत के साथ इकाई बीन्स की जटिलता के कुछ कम करने के लिए कोशिश की, लेकिन जटिलता के बहुमत बने रहे। ईजेबी 2.0 में पोर्टेबिलिटी की कमी भी थी (क्योंकि ऑब्जेक्ट-रिलेशनल मैपिंग स्पेक का हिस्सा नहीं था और तैनाती डिस्क्रिप्टर इस प्रकार मालिकाना था)। असफल!

  • फिर JDO जो है वस्तु दृढ़ता के लिए एक डेटासंग्रह नास्तिक मानक (RDBMS, OODBMS, एक्सएमएल, एक्सेल, एलडीएपी के साथ प्रयोग किया जा सकता है) आया था। लेकिन, कई खुले स्रोत कार्यान्वयन हैं और जबकि छोटे स्वतंत्र विक्रेताओं द्वारा जेडीओ अपनाया गया है (ज्यादातर ओओडीबीएमएस विक्रेताओं को उम्मीद है कि जेडीओ उपयोगकर्ता बाद में अपने आरडीबीएमएस डाटास्टोर से ओओडीबीएमएस में स्विच करेंगे - लेकिन यह स्पष्ट रूप से कभी नहीं हुआ), यह असफल रहा बड़े जावा ईई खिलाड़ियों और उपयोगकर्ताओं द्वारा अपनाया गया (बुनाई के कारण जो विकास समय पर दर्द था और वास्तव में बहुत अमूर्त होने के कारण, अजीब क्वेरी एपीआई के कुछ ग्राहकों को डराता था)। इसलिए, जबकि मानक खुद मर नहीं गया है, मैं इसे विफलता के रूप में मानता हूं। असफल!

  • और वास्तव में, Toplink, एक पुराने खिलाड़ी, या हाइबरनेट रिलेशनल डेटाबेस हठ के बीच (प्रतियोगिता के लिए वस्तु के लिए EJB सीएमपी और JDO से अधिक उपयोगकर्ताओं द्वारा पसंद किया गया है की तरह दो मानकों, मालिकाना एपीआई के अस्तित्व के बावजूद मानकों, जेडीओ की अस्पष्ट स्थिति, सीएमपी और खराब विपणन की पूर्व विफलता में मेरा विश्वास है कि इस क्षेत्र में जिम्मेदारी का एक हिस्सा है) और हाइबरनेट वास्तव में इस क्षेत्र में वास्तविक तथ्य बन गया है (यह एक महान खुला स्रोत ढांचा है)। सफलता!

  • तब सूर्य महसूस किया कि वे बातें (और अधिक आम तौर पर पूरे जावा EE) सरल करने के लिए था और वे EE 5 जावा में यह किया जेपीए साथ, जावा हठ एपीआई, जो EJB 3.0 का हिस्सा है और है डेटाबेस दृढ़ता के संबंध में वस्तु के लिए नया मानक। जेपीए ईजेबी 2 सीएमपी, जेडीओ, हाइबरनेट, और टॉपलिंक एपीआई/उत्पादों को एकीकृत करता है और ऐसा लगता है कि ईजेबी सीएमपी और जेडीओ असफल रहा (उपयोग और गोद लेने में आसानी)। सफलता!

संक्षेप में, डेटाबेस हठ के लिए जावा के मानक जेपीए है और (का उपयोग कर जेपीए के हाइबरनेट के कार्यान्वयन ठीक है पर जेपीए एपीआई का उपयोग) दूसरों मालिकाना एपीआई से अधिक प्राथमिकता दी जानी चाहिए जब तक कि एक ORM तुम क्या नहीं है जरुरत। यह जेडीबीसी की तुलना में एक उच्च स्तरीय एपीआई प्रदान करता है और यह आपको बहुत सारे मैन्युअल काम को बचाने के लिए है (यह सरल है लेकिन यह विचार है)।

+1

शानदार, यह वही है जो मैं चाहता था, सबसे सराहना की मदद! Btw: क्या आपको पता है डिफ़ॉल्ट में कुछ NetBeans आईडीई उपयोग करता है? उदा जब मैं जेबीबल को डीबी टेबल खींच और छोड़ देता हूं, नेटबीन कुछ प्रबंधन के साथ कक्षा उत्पन्न करता है ... इकाई प्रबंधक, क्वेरी परिणाम इत्यादि का उपयोग करता है – Mike

+1

@ माइक धन्यवाद। नेटबीन के संबंध में, हाल के संस्करणों में डिफ़ॉल्ट रूप से जेपीए के लिए समर्थन है (सूर्य के मानक के रूप में, यह समझ में आता है)। और वास्तव में, 'EntityManager' जेपीए का हिस्सा है। –

+0

बढ़िया, मैं जेपीए की कोशिश करता हूं मुझे लगता है :) – Mike

8

मैं Hibernate सिफारिश कर सकते हैं। इसका व्यापक रूप से उपयोग किया जाता है (और अच्छे कारणों से), और तथ्य यह है कि Java Persistence API विनिर्देश का नेतृत्व हाइबरनेट की मुख्य डिजाइनर द्वारा किया गया था कि यह निकट भविष्य के लिए होगा :-) यदि पोर्टेबिलिटी और विक्रेता तटस्थता आपके लिए महत्वपूर्ण है, तो आप इसका उपयोग जेपीए के माध्यम से कर सकते हैं, इसलिए भविष्य में आप आसानी से किसी अन्य जेपीए कार्यान्वयन पर स्विच कर सकते हैं।

जेडीओ के साथ व्यक्तिगत अनुभव की कमी, मैं वास्तव में दोनों की तुलना नहीं कर सकता। हालांकि, पहली बार हाइबरनेट (या सामान्य रूप से ओआरएम) के लाभ JDO page पर सूचीबद्ध की गई चीज़ों के समान ही प्रतीत होते हैं। मेरे लिए सबसे महत्वपूर्ण बिंदु हैं:

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

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

+0

+1 - तुम मुझे यह करने के लिए हराया। हाइबरनेट उपयोग करने के लिए एक महान ओआरएम है, जिसमें पर्याप्त लचीलापन है जिससे आप जेडीबीसी में जो भी काम करेंगे, उसे पूरा करने के लिए पर्याप्त लचीलापन है। – Elie

+2

हाँ मैंने हाइबरनेट के बारे में बहुत कुछ सुना है क्या आप इसे छोटी परियोजनाओं में उपयोग करने की सलाह देते हैं? 50 कक्षाओं की तरह, 10-15 डीबी टेबल की तरह? या मैन्युअल जेडीबीसी डेटा प्रबंधन के लिए छड़ी? – Mike

+0

@ माइक अच्छा सवाल। कुछ कहते हैं कि यह छोटी परियोजनाओं के लिए अधिक है। मैंने एक समान ओआरएम उपकरण, Cayenne (http://cayenne.apache.org) का उपयोग करके एक छोटी परियोजना की है, और मैं संतुष्ट था। तो मैं निश्चित रूप से इसे एक कोशिश दे दूँगा। यह _might_ लगता है कि आपको स्टार्टअप पर बहुत से "अतिरिक्त" काम करने की ज़रूरत है, लेकिन आईएमएचओ इसे लंबे समय तक वापस भुगतान करेगा। –

6

जेडीओ जेडीबीसी प्रौद्योगिकी का निर्माण करता है। इसी प्रकार, हाइबरनेट को अभी भी जेडीबीसी की आवश्यकता है। जेडीबीसी डाटाबेस कनेक्टिविटी पर जावा का मौलिक विनिर्देश है।

इसका मतलब है कि जेडीबीसी आपको अधिक नियंत्रण देगा लेकिन इसके लिए अधिक नलसाजी कोड की आवश्यकता है।

जेडीओ उच्च अवशोषण और कम नलसाजी कोड प्रदान करता है, क्योंकि बहुत सारी जटिलता छिपी हुई है।

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

उनकी वेबसाइट पर सूर्य का जावा ट्यूटोरियल एक सभ्य प्रारंभिक सामग्री प्रदान करता है जो आपको जेडीबीसी के माध्यम से चलता है। http://java.sun.com/docs/books/tutorial/jdbc/

+1

धन्यवाद, मैं इसे ध्यान में रखूंगा – Mike

1

हाइबरनेट, निश्चित रूप से। यह लोकप्रिय है, यहां तक ​​कि एक .NET संस्करण भी है।

इसके अलावा, हाइबरनेट को स्प्रिंग ढांचे के साथ आसानी से एकीकृत किया जा सकता है।

और, यह ज्यादातर किसी भी डेवलपर आवश्यकताओं के अनुरूप होगा।

1

एक नया और रोमांचक विकल्प GORM है, जो Grails से ORM कार्यान्वयन है। अब अकेले खड़े हो सकते हैं। हुड के तहत यह हाइबरनेट का उपयोग करता है, लेकिन आपको ठंडा गतिशील खोजकर्ता आदि के साथ शीर्ष पर एक अच्छी परत देता है।

+1

"हुड के तहत यह हाइबरनेट का उपयोग करता है" - और वसंत। ** iBatis ** के लिए – duffymo

7

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

आपको एसक्यूएल को स्वीकार करने के लिए तैयार होना होगा कि हाइबरनेट आपके लिए उत्पन्न होगा। यदि आपको लगता है कि आप हाथ से कोडित एसक्यूएल के साथ बेहतर कर सकते हैं, तो शायद हाइबरनेट आपके लिए नहीं है।

एक और विकल्प iBatis है। यदि जेडीबीसी कच्चे एसक्यूएल है, और हाइबरनेट ओआरएम है, तो iBatis दोनों के बीच कुछ के रूप में सोचा जा सकता है। यह आपको निष्पादित एसक्यूएल पर अधिक नियंत्रण देता है।

+0

+1। अक्सर अनदेखा किया जा रहा है, लेकिन आपके डीबीएमएस की मालिकाना सुविधाओं का उपयोग करके केवल पढ़ने के लिए जटिल प्रश्नों के लिए बहुत अच्छा है। –

+0

ग्रेट - क्यों न सिर्फ एसक्यूएल लिखें और ब्लोट छोड़ दें? – duffymo

1

ये सभी अलग-अलग अमूर्त परतें अंततः जेडीबीसी का उपयोग करती हैं। पूरा विचार कुछ कठिन और त्रुटि प्रवण काम को स्वचालित रूप से स्वचालित करना है, जैसे कि कंपाइलर लेखन कार्यक्रमों में बहुत कठिन काम को स्वचालित करते हैं (डेटा संरचना का आकार बदलना - कोई समस्या नहीं, बस पुन: संकलित करें)।

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

जेडीओ एक एकल सूर्य मानक में विभिन्न परियोजनाओं का अभिसरण है और एक मैं आपको सुझाव दूंगा। कार्यान्वयन के लिए, अपने पसंदीदा आईडीई को अपने विभिन्न जादूगरों में से एक का चयन करें।

0

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

12

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

ऐसा एक ढांचा जो उपयोग करने में काफी आसान है Spring JdbcTemplate है।

1

टोक़ (http://db.apache.org/torque/) भी है जिसे मैं व्यक्तिगत रूप से पसंद करता हूं क्योंकि यह आसान है, और वही करता है जो मुझे चाहिए।

टोक़ के साथ मैं mysql के साथ डेटाबेस को परिभाषित कर सकता हूं (ठीक है मैं पोस्टग्रेस्क्ल का उपयोग करता हूं, लेकिन माइस्क्ल भी समर्थित है) और टोक़ डेटाबेस से पूछताछ कर सकता है और फिर डेटाबेस में प्रत्येक तालिका के लिए जावा कक्षाएं उत्पन्न कर सकता है। टोक़ के साथ आप डेटाबेस से पूछ सकते हैं और सही प्रकार के जावा ऑब्जेक्ट वापस प्राप्त कर सकते हैं।

यह क्लॉज (या तो मानदंड वस्तु के साथ या आप स्वयं को एसक्यूएल लिख सकते हैं) का समर्थन करता है और जुड़ता है।

यह विदेशी कुंजी का भी समर्थन करता है, इसलिए यदि आपको उपयोगकर्ता तालिका और एक हाउस टेबल मिलती है, जहां उपयोगकर्ता 0 या अधिक घरों का मालिक हो सकता है, तो उपयोगकर्ता ऑब्जेक्ट पर गेट हाउस() विधि होगी जो आपको सूची देगी हाउस की वस्तुएं उपयोगकर्ता के हैं।

आपके द्वारा लिखे गए कोड के बारे में पहली बार देखने के लिए, http://db.apache.org/torque/releases/torque-3.3/tutorial/step5.html पर एक नज़र डालें जिसमें उदाहरण हैं जो टोक़ के साथ डेटा लोड/सेव/क्वेरी कैसे करें। (इस उदाहरण में उपयोग की जाने वाली सभी कक्षाएं डाटाबेस परिभाषा के आधार पर स्वतः उत्पन्न होती हैं)।

1

Ebean ORM एक और विकल्प http://ebean-orm.github.io/

Ebean मानचित्रण के लिए जेपीए एनोटेशन का उपयोग करता है, लेकिन यह sessionless होने के लिए architected है है। इसका मतलब यह है कि आपके पास संलग्न/अलग अवधारणाएं नहीं हैं और आप लगातार/विलय/फ्लश नहीं करते हैं - आप बस अपने सेम को बचाते हैं।

  • मैं Ebean हाइबरनेट, जेपीए या JDO

से उपयोग करने के लिए आप JDO या जेपीए के लिए एक शक्तिशाली वैकल्पिक दृष्टिकोण के लिए देख रहे हैं तो अगर आप Ebean पर एक नज़र हो सकता था बहुत सरल होने की उम्मीद थी ।

3

MyBatis पर एक नज़र डालें। अक्सर अनदेखा किया जा रहा है, लेकिन आपके डीबीएमएस की मालिकाना सुविधाओं का उपयोग करके केवल पढ़ने के लिए जटिल प्रश्नों के लिए बहुत अच्छा है।

http://www.mybatis.org

1

यह इस प्रकार से जावा हठ के साथ चला जाता है। आपने अभी जावा सीख लिया है, अब आप कुछ रिकॉर्ड जारी रखना चाहते हैं, आपको जेडीबीसी सीखना है। आप खुश हैं कि अब आप अपने डेटा को डेटाबेस में सहेज सकते हैं। फिर आप थोड़ा बड़ा आवेदन लिखने का फैसला करते हैं। आपको एहसास है कि कोशिश करने, पकड़ने, खुले कनेक्शन, घनिष्ठ कनेक्शन, परिणाम से डेटा को अपने बीन में स्थानांतरित करने के लिए यह कठिन हो गया है .... तो आपको लगता है कि एक आसान तरीका होना चाहिए। जावा में हमेशा एक विकल्प होता है। तो आप कुछ googling करते हैं और थोड़ी देर में आप ओआरएम खोजते हैं, और सबसे अधिक संभावना है, हाइबरनेट। आप इतने उत्साहित हैं कि अब आपको कनेक्शन के बारे में सोचना नहीं है। आपकी टेबल स्वचालित रूप से बनाई जा रही हैं। आप बहुत तेज़ी से आगे बढ़ने में सक्षम हैं। फिर आप वास्तव में एक बड़ी परियोजना शुरू करने का निर्णय लेते हैं, शुरुआत में आप बहुत तेजी से आगे बढ़ते हैं और आपके पास सभी क्रूड ऑपरेशन होते हैं। आवश्यकताएं आती रहती हैं, फिर एक दिन आप कोने में डाल दिया जाता है। आप सहेजने की कोशिश करते हैं लेकिन यह वस्तुओं के बच्चों को कैस्केड नहीं करता है। कुछ किताबें जो आपने पढ़ी हैं किताबों में समझाया गया है। आप नहीं जानते कि क्या करना है क्योंकि आपने हाइबरनेट पुस्तकालयों को नहीं लिखा है। आप चाहते हैं कि आपने स्वयं एसक्यूएल लिखा होगा। अब यह फिर से पुनर्विचार करने का समय है ... जैसे ही आप परिपक्व हो जाते हैं, आपको एहसास होता है कि डेटाबेस के साथ बातचीत करने का सबसे अच्छा तरीका एसक्यूएल के माध्यम से है। आप यह भी महसूस करते हैं कि कुछ टूल्स आपको बहुत तेज़ी से शुरू करते हैं लेकिन वे आपको लंबे समय तक नहीं जा सकते हैं। यह मेरी कहानी है। अब मैं बहुत खुश आईबाति/उपयोगकर्ता हूं।

0

यहां यह है कि यह जावा दृढ़ता के साथ कैसे जाता है। आपने अभी जावा सीख लिया है, अब आप कुछ रिकॉर्ड जारी रखना चाहते हैं, आपको जेडीबीसी सीखना है। आप खुश हैं कि अब आप अपने डेटा को डेटाबेस में सहेज सकते हैं। फिर आप थोड़ा बड़ा आवेदन लिखने का फैसला करते हैं। आपको एहसास है कि कोशिश करने, पकड़ने, खुले कनेक्शन, घनिष्ठ कनेक्शन, परिणाम से डेटा को अपने बीन में स्थानांतरित करने के लिए यह कठिन हो गया है .... तो आपको लगता है कि एक आसान तरीका होना चाहिए। जावा में हमेशा एक विकल्प होता है।तो आप कुछ googling करते हैं और थोड़ी देर में आप ओआरएम खोजते हैं, और सबसे अधिक संभावना है, हाइबरनेट। आप इतने उत्साहित हैं कि अब आपको कनेक्शन के बारे में सोचना नहीं है। आपकी टेबल स्वचालित रूप से बनाई जा रही हैं। आप बहुत तेज़ी से आगे बढ़ने में सक्षम हैं। फिर आप वास्तव में एक बड़ी परियोजना शुरू करने का निर्णय लेते हैं, शुरुआत में आप बहुत तेजी से आगे बढ़ते हैं और आपके पास सभी क्रूड ऑपरेशन होते हैं।

2

जेपीए/हाइबरनेट ORM के लिए एक लोकप्रिय विकल्प है। यह आपको केवल हर ओआरएम सुविधा प्रदान कर सकता है जिसकी आपको आवश्यकता है। बुनियादी ओआरएम जरूरतों वाले लोगों के लिए सीखने की अवस्था खड़ी हो सकती है।

जेपीए के लिए विकल्प है कि बुनियादी ORM आवश्यकताओं के साथ डेवलपर्स के लिए कम जटिलता के साथ ORM प्रदान के बहुत सारे हैं। उदाहरण के लिए क्वेरी sourceforge: http://sourceforge.net/directory/language:java/?q=ORM

मैं अपने समाधान के लिए आंशिक हूँ, Sormula: sourceforge या bitbucket। सोरमुला को बुनियादी ओआरएम प्रदान करते समय जटिलता को कम करने के लिए डिज़ाइन किया गया था।

-1

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

+0

नहीं तथ्यों बैकअप लेने के लिए है कि यह "वहाँ बाहर सबसे अच्छा समाधान" है – Woot4Moo

+0

@ Woot4Moo - इस सवाल के बारे में सब कुछ थोड़े बेकार है। आपको इसके बजाय बंद करने के लिए व्यक्तिपरक "सबसे अच्छा क्या है/मुझे सलाह दें" प्रश्नों को ध्वजांकित करने पर ध्यान देना चाहिए। – Kev

संबंधित मुद्दे