2011-08-15 7 views
9

कोई व्यक्ति बता सकता है कि, आम आदमी शब्दों में, हाइबरनेट और जेडीबीसी के संबंध में ऑब्जेक्ट/रिलेशनल मैपिंग (ओआरएम) क्या है?हाइबरनेट और जेडीबीसी के संबंध में ऑब्जेक्ट/रिलेशनल मैपिंग (ओआरएम) क्या है?

आरेख को समझने के लिए विशेष रूप से उपयोगी होगा ...

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

enter image description here

src: http://software-carpentry.org/3_0/summary.html

उत्तर

29

ORM आप एक संबंधपरक डेटाबेस का प्रतिनिधित्व के रूप में जावा वस्तुओं का उपयोग करने के लिए अनुमति देता है। यह दो अवधारणाओं (ऑब्जेक्ट-ओरिएंटेड और रिलेशनल) को मानचित्रित करता है

हाइबरनेट एक ओआरएम ढांचा है - आप वर्णन करते हैं कि आपके डेटाबेस में आपकी ऑब्जेक्ट्स का प्रतिनिधित्व कैसे किया जाता है, और हाइबरनेट रूपांतरण को संभालता है।

JDBC डेटाबेस का उपयोग के लिए एपीआई है, और यह काम करता है "एक संबंधपरक तरह से" - आप टेबल क्वेरी और पंक्तियों और स्तंभों वापस मिलता है। हाइबरनेट डेटा लाने के लिए हुड के तहत जेडीबीसी का उपयोग करता है और बाद में इसे ऑब्जेक्ट में परिवर्तित करता है।

एक JDBC ResultSet कई रिकॉर्ड हैं, और प्रत्येक रिकॉर्ड कॉलम का समूह है। हाइबरनेट में यह List<SomeClass> बन जाता है जहां SomeClass has a field for every column in the database table, and there is one instance of कुछ क्लास प्रति डेटाबेस रिकॉर्ड।

+0

उत्कृष्ट उत्तर! किसी भी मौके पर आप एचआईबीनेट के साथ ओआरएम का उपयोग करके ऐप का आरेख शामिल कर सकते हैं और इसे जेडीबीसी का उपयोग करके ऐप के आरेख के साथ विपरीत कर सकते हैं? – rrazd

+0

मुझे नहीं लगता कि यह एक अच्छा आरेख होगा - ओआरएम वस्तुओं का उपयोग करता है; डेटाबेस टेबल का उपयोग करता है। फिलहाल मैं ग्राफिकल – Bozho

+0

अंतर को चित्रित करने के लिए एक अच्छा तरीका नहीं सोच सकता हूं, क्या आप पुष्टि कर सकते हैं कि पोस्ट की गई तस्वीर हाइबरनेट ओआरएम – rrazd

4

मैं हाइबरनेट पर पढ़ रहे हैं और इस सूत्र भर में ठोकर खाई किया गया था।

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

एक ORM उपकरण डेटा निर्माण, डेटा हेरफेर और डेटा का उपयोग सरल करता है। यह एक प्रोग्रामिंग तकनीक है जो ऑब्जेक्ट को डेटाबेस में संग्रहीत डेटा पर मैप करती है।

enter image description here

हाइबरनेट के लाभ:

1) ओपनसोर्स और हल्के: हाइबरनेट ढांचे LGPL लाइसेंस और हल्के के तहत खुले स्रोत है।

2) फास्ट प्रदर्शन: हाइबरनेट ढांचे के प्रदर्शन तेज क्योंकि कैश आंतरिक हाइबरनेट ढांचे में इस्तेमाल किया जाता है। हाइबरनेट फ्रेमवर्क में प्रथम स्तर के कैश और दूसरे स्तर के कैश में दो प्रकार के कैश होते हैं। पहले स्तर कैश bydefault सक्षम है।

3) डेटाबेस स्वतंत्र क्वेरी: एचक्यूएल (हाइबरनेट क्वेरी भाषा) एसक्यूएल का ऑब्जेक्ट उन्मुख संस्करण है। यह डेटाबेस स्वतंत्र प्रश्न उत्पन्न करता है। इसलिए आपको डेटाबेस विशिष्ट प्रश्न लिखने की आवश्यकता नहीं है। हाइबरनेट से पहले, यदि प्रोजेक्ट के लिए डेटाबेस बदल दिया गया है, तो हमें SQL क्वेरी को भी बदलना होगा जिससे रखरखाव की समस्या हो सकती है।

4) स्वचालित तालिका निर्माण: हाइबरनेट फ्रेमवर्क स्वचालित रूप से डेटाबेस की तालिका बनाने की सुविधा प्रदान करता है।इसलिए मैन्युअल रूप से डेटाबेस में टेबल बनाने की कोई ज़रूरत नहीं है।

5) जटिल जुड़ने में सरलता: डेटा फॉर्म लाने के लिए एकाधिक टेबल हाइबरनेट फ्रेमवर्क में आसान है।

6) क्वेरी आंकड़े और डेटाबेस स्थिति प्रदान करता है: हाइबरनेट क्वेरी कैश का समर्थन करता है और क्वेरी और डेटाबेस स्थिति के बारे में आंकड़े प्रदान करता है। लॉग इन, उपनाम, प्रथम नाम और पता:

javatpoint

1

अपने आरेख द्वारा जा रहे हैं से सूचना, हम एक व्यक्ति वर्ग जो डेटा सदस्य हैं की है। अब प्रत्येक व्यक्ति वस्तु के लिए पता पता वर्ग का एक वस्तु है।

अब डेटाबेस टेबल देखें। हमारे पास व्यक्ति वर्ग के लिए एक व्यक्ति तालिका है और पता वर्ग के लिए एक पता तालिका है। अब इन 2 टेबल के बीच एक रिश्ता है। पता तालिका (आईडी) की प्राथमिक कुंजी व्यक्ति तालिका की विदेशी कुंजी (एडीआर) में मैप की जाती है। इस तरह दो तालिकाओं के बीच एक संबंध स्थापित किया गया है।

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

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

हाइबरनेट एक ओआरएम ढांचा है - आप वर्णन करते हैं कि आपके डेटाबेस में आपकी ऑब्जेक्ट्स का प्रतिनिधित्व कैसे किया जाता है, और हाइबरनेट रूपांतरण को संभालता है।

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