जावा डाटाबेस कनेक्टिविटी

आप SQL की मूल बातें जानते हैं। यह अच्छा है। लेकिन आज आप और भी अच्छा महसूस करेंगे। आज आप जावा एप्लिकेशन से डेटाबेस के साथ काम करना सीखना शुरू करेंगे।

कई अलग-अलग डीबीएमएस हैं, इसलिए जावा के रचनाकारों ने मानकीकरण करने का फैसला किया कि जावा एप्लिकेशन डेटाबेस के साथ कैसे काम करता है। और उन्होंने इस मानक को - JDBC : Java डेटाबेस कनेक्टिविटी कहा ।

JDBC के 3 मुख्य इंटरफेस हैं:

  • कनेक्शन - डेटाबेस से जुड़ने के लिए जिम्मेदार
  • कथन - डेटाबेस को क्वेरी करने के लिए जिम्मेदार
  • परिणामसेट - डेटाबेस के लिए क्वेरी के परिणाम के लिए जिम्मेदार

वास्तव में, बस इतना ही। और हम सभी इंटरफेस के सभी तरीके भी नहीं सीखेंगे। केवल कामकाजी उदाहरण, जिन्हें हम धीरे-धीरे जटिल करेंगे।

JDBC कुछ हद तक सर्वलेट्स के साथ काम करने के समान है। JDBC के रचनाकारों ने कई इंटरफेस लिखे हैं और इसे गर्व से Java DataBase API कहते हैं। और इन इंटरफेस के कार्यान्वयन को ... DBMS के रचनाकारों को सौंपा गया था। इसे वहां कैसे लागू किया जाता है - किसी को परवाह नहीं है। ठीक काम करता है।

JDBC के चार संस्करण हैं और हम नवीनतम को देखेंगे। और इसलिए नहीं कि वह सबसे कूल है, बल्कि इसलिए कि वह सबसे सरल है।

जेडीबीसी चालक प्रबंधक

जावा एप्लिकेशन और डेटाबेस JDBC ड्राइवर नामक लाइब्रेरी के माध्यम से एक दूसरे के साथ संवाद करते हैं। यह कक्षाओं का एक समूह है जो किसी विशेष DBMS के लिए JDBC API को लागू करता है।

DriverManager नामक वर्ग का उपयोग करके सही JDBC ड्राइवर का चयन किया जाता है । उनकी बातचीत को निम्नानुसार दर्शाया जा सकता है:

बात यह है कि, आप इन-मेमोरी-डीबी, नो-एसक्यूएल-डीबी, या यहां तक ​​कि एक एंड्रॉइड ऐप में निर्मित डेटाबेस का उपयोग कर सकते हैं। जावा डेवलपर के रूप में, ये बारीकियां आपको बिल्कुल चिंतित नहीं करती हैं। चालक प्रबंधक आपके लिए सही JDBC ड्राइवर का चयन करेगा और सब कुछ घड़ी की कल की तरह काम करेगा।

वैसे, वह यह कैसे करता है?

MySQL सर्वर से कनेक्ट करना

याद रखें कि आपको MySQL कार्यक्षेत्र के माध्यम से स्थानीय SQL सर्वर से कनेक्ट करने के लिए क्या चाहिए? अगर मैं भूल गया, तो मैं आपको याद दिलाता हूं, आपको तीन चीजों की जरूरत थी:

  • मेज़बान
  • लॉग इन करें
  • पासवर्ड

लॉगिन और पासवर्ड के साथ सब कुछ स्पष्ट है, और होस्ट, यदि आपको याद है, उस कंप्यूटर का नाम है जिस पर सर्वर स्थित है। यदि यह आपके स्थानीय कंप्यूटर पर स्थित है, तो आपको स्थानीयहोस्ट को होस्ट नाम के रूप में निर्दिष्ट करने की आवश्यकता है। क्या होगा यदि यह स्थानीय नहीं है?

फिर आपको ... URL का उपयोग करने की आवश्यकता है। URL का मतलब यूनिवर्सल रिसोर्स लोकेटर है । इसका उपयोग नेटवर्क पर किसी भी चीज़ का स्थान निर्दिष्ट करने के लिए किया जा सकता है: एक साइट, एक प्रिंटर, एक SQL सर्वर। वास्तव में, URL का उपयोग स्थानीय SQL सर्वर तक पहुँचने के लिए भी किया जाता है। ऐसा कुछ दिखता है:

mysql://localhost:3306/db_scheme
  • MySQL एक सर्वर प्रोटोकॉल है
  • लोकलहोस्ट - नेटवर्क पर होस्टनाम
  • 3306 - पोर्ट जिस पर अनुरोध किया जाता है
  • db_scheme - स्कीमा नाम (डेटाबेस का नाम)

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

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

साथ ही, प्रोटोकॉल समग्र हो सकता है। यदि डेटाबेस सर्वर के साथ सभी संचार एसएसएच प्रोटोकॉल का उपयोग कर एक एन्क्रिप्टेड चैनल पर है, तो यूआरएल इस तरह निर्दिष्ट किया जा सकता है:

ssh:mysql://localhost:3306/db_scheme

एक प्रोटोकॉल जरूरी नहीं कि एक बाहरी प्रोग्राम हो। उदाहरण के लिए, यदि आप JNDI प्रोटोकॉल का उपयोग कर सर्वर के साथ काम कर रहे हैं, तो आप इसे इस तरह निर्दिष्ट कर सकते हैं:

jndi:mysql://localhost:3306/db_scheme

और अगर आप JDBC API प्रोटोकॉल का उपयोग करके काम करना चाहते हैं, तो आपको इस तरह लिखना होगा:

jdbc:mysql://localhost:3306/db_scheme

जब आप डेटाबेस कनेक्शन बनाने का प्रयास करते हैं, तो जेडीबीसी चालक प्रबंधक आपके एसक्यूएल-डीबी-यूआरएल को पार्स करता है और प्रोटोकॉल नाम से जेडीबीसी ड्राइवर नाम निर्धारित करता है। यहाँ ऐसी ही एक छोटी सी ट्रिक है।