JPA और JDBC में क्या अंतर है?


जवाब 1:

JDBC एक डेटाबेस से सीधे कनेक्ट करने और इसके खिलाफ SQL चलाने के लिए एक मानक उपकरण है, उदाहरण के लिए TableName आदि से चयन करें। डेटा सेट को वापस किया जा सकता है जिसे उपयोगकर्ता अपने ऐप में संभाल सकता है, और वह सभी सामान्य चीजें जैसे अपडेट, डिलीट कर सकता है , सम्मिलित प्रक्रियाएँ, आदि। यह अधिकांश जावा डीबीए (जेपीए प्रदाताओं सहित) के पीछे अंतर्निहित तकनीकों में से एक है।

पारंपरिक JDBC ऐप्स के साथ एक प्रमुख समस्या यह है कि उपयोगकर्ता के पास अक्सर कुछ भद्दे कोड हो सकते हैं जहाँ SQL के साथ तर्क मिलाया जाता है, बहुत सारे डेटा सेट और ऑब्जेक्ट्स के बीच मैपिंग होती है, आदि।

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

OpenJPA, toplink, आदि सहित कुछ अन्य उदाहरण

जेपीए के लिए हाइबरनेट और अन्य लोकप्रिय प्रदाता एसक्यूएल लिखते हैं और डीबी से पढ़ने और लिखने के लिए जेडीबीसी का उपयोग करते हैं।

धन्यवाद।

अगर आपको मेरा जवाब पसंद आया तो इसे लाइक करें।


जवाब 2:

यह समझना थोड़ा जटिल होगा कि क्या अंतर है अगर दोनों एक शुरुआत हैं। मुझे लगता है कि यू को पहले जेडीबीसी और हाइबरनेट के बीच अंतर को समझकर शुरू करना चाहिए। मुझे आशा है कि आपको पता है कि जेडडीबीसी क्या है, अभी भी संक्षिप्त विवरण के रूप में है: जेडडीबीसी का अर्थ है जावा डेटाबेस कनेक्टिविटी। JDBC, db के साथ क्वेरी को जोड़ने और निष्पादित करने के लिए एक जावा एपीआई है। यह ड्राइवरों को db से जुड़ने की सुविधा प्रदान करता है। किसी भी संबंधपरक डेटाबेस में संग्रहीत सारणीबद्ध डेटा तक पहुँचने के लिए आप JDBC API का उपयोग कर सकते हैं। JDBC एपीआई की मदद से, हम डेटाबेस से डेटा को बचा सकते हैं, अपडेट कर सकते हैं, हटा सकते हैं और प्राप्त कर सकते हैं।

अब हाइबरनेट क्या है? यह JDBC के विपरीत एक फ्रेमवर्क है, आप इसका उपयोग करने से पहले हाइबरनेट पुस्तकालयों को आयात करने के लिए u hav करते हैं, जबकि JDBC स्वयं J2SE का एक हिस्सा है। Hibernate वही करता है जो JDBC के लिए विकसित किया गया है, लेकिन यू कह सकते हैं कि Hibernate JDBC का एक अग्रिम स्तर है। हाइबरनेट डेटाबेस के साथ बातचीत करने के लिए जावा एप्लिकेशन के विकास को सरल बनाता है। यह एक ORM उपकरण है, इसका अर्थ है कि यह db टेबल के साथ जावा ऑब्जेक्ट को मैप करता है। एक जावा वर्ग डीबी में एक तालिका का प्रतिनिधित्व कर सकता है। उदाहरण के लिए, यदि आपने हाइबरनेट में कर्मचारी वर्ग के रूप में "एम्प_26" टेबल को मैप किया है, तो आप सभी कर्मचारियों को empl_26 टेबल से लाने के लिए एक सरल ऑब्जेक्ट-ओरिएंटेड क्वेरी लिखेंगे: "एम्प्लोयी से //" हाइबरनेट में "emp_26 से" का चयन करें // में JDBC।

Hibernate कैश, एसोसिएशन-मैपिंग, इनहेरिटेंस-मैपिंग, HQL, पेजिनेशन n जैसे कई सुविधाएँ प्रदान करता है जो JDBC में उपलब्ध नहीं हैं।

जेपीए में आकर, यह एक विनिर्देश है, यह कक्षाओं और इंटरफेस का एक सेट है। जेपीए को इसे लागू करने के लिए एक उपकरण की आवश्यकता होती है और यह उपकरण हाइबरनेट हो सकता है। जेपीए को लागू करके, आप वही कर सकते हैं जो हाइबरनेट करता है, लेकिन जेपीए के प्रारूप में। यदि जेपीए एक नृत्य है तो हाइबरनेट या किसी अन्य उपकरण को इसे नृत्य-मंच प्रदान करना आवश्यक है। वैसे, इसका मतलब यह नहीं है कि Hibernate JPA के बिना नृत्य नहीं कर सकता, हाइबरनेट को अपना नृत्य भी मिला है।


जवाब 3:

JDBC एक DB को सीधे कनेक्ट करने और इसके खिलाफ SQL चलाने के लिए एक मानक है - जैसे कि SELECT * FROM USERS, आदि। डेटा सेट को वापस किया जा सकता है जिसे आप अपने ऐप में संभाल सकते हैं, और आप INSERT, DELETE जैसी सभी सामान्य चीजें कर सकते हैं। संग्रहीत कार्यविधियाँ चलाना, आदि। यह अधिकांश जावा डेटाबेस एक्सेस (जेपीए प्रदाताओं सहित) के पीछे अंतर्निहित तकनीकों में से एक है।

पारंपरिक JDBC ऐप्स के साथ समस्याओं में से एक यह है कि आपके पास अक्सर कुछ भद्दे कोड हो सकते हैं जहां बहुत सारे डेटा सेट और ऑब्जेक्ट्स के बीच मैपिंग होती है, तर्क SQL के साथ मिलाया जाता है, आदि।

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

अन्य उदाहरणों में OpenJPA, toplink, आदि शामिल हैं।