MySQL JDBC ड्राइवर कनेक्शन स्ट्रिंग क्या है?


117

मैं JDBC में नया हूँ और मैं एक MySQL डेटाबेस से संबंध बनाने की कोशिश कर रहा हूँ। मैं कनेक्टर / J ड्राइवर का उपयोग कर रहा हूं, लेकिन मुझे अपनी Class.forName()विधि के लिए JDBC कनेक्शन स्ट्रिंग नहीं मिल सकती है ।


4
शुरू करने के लिए, Class.forName()JDBC कनेक्शन स्ट्रिंग की उम्मीद नहीं है, लेकिन JDBC ड्राइवर वर्ग का नाम।
बालुस

जवाबों:


114

अपने ड्राइवर को पथ में मान लिया गया है,

String url = "jdbc:mysql://localhost/test";
Class.forName ("com.mysql.jdbc.Driver").newInstance ();
Connection conn = DriverManager.getConnection (url, "username", "password");

1
अगर यह पर्यावरण चर में नहीं है, तो आप jdbc पथ कैसे खोजेंगे?
रॉय हिंकले

1
नमूना कोड में JDBC url को हार्डकोड किया गया है, किसी भी पर्यावरण चर में नहीं खोजा गया
Jaime Hablutzel

67

यहाँ प्रलेखन है:

https://dev.mysql.com/doc/connector-j/en/connector-j-reference-configuration-properties.html

एक बुनियादी कनेक्शन स्ट्रिंग की तरह दिखता है:

jdbc:mysql://localhost:3306/dbname

Class.forName स्ट्रिंग "com.mysql.jdbc.Driver" है, जिसे आप पा सकते हैं (संपादित करें: अब उसी पृष्ठ पर)।


ऊपर दिए गए लिंक काम नहीं करते हैं। यहां एक नया काम करने वाला लिंक है: dev.mysql.com/doc/connector-j/en/…
hexicle

1
मैं कनेक्शन स्ट्रिंग में उपयोग करने के लिए तीन गुण है, तो कैसे होगा की तरह कनेक्शन स्ट्रिंग देखो - जैसे: useOldAliasMetadataBehavior=true, useUnicode=true,characterEncoding=UTF-8
n00b Pr0grammer

17
"jdbc:mysql://localhost"

ओरकल डॉक्स से ।।

jdbc:mysql://[host][,failoverhost...]
[:port]/[database]
[?propertyName1][=propertyValue1]
[&propertyName2][=propertyValue2]

host: port आपके डेटाबेस को होस्ट करने वाले कंप्यूटर का होस्ट नाम और पोर्ट नंबर है। यदि निर्दिष्ट नहीं है, तो होस्ट और पोर्ट के डिफ़ॉल्ट मान क्रमशः 127.0.0.1 और 3306 हैं।

डेटाबेस से कनेक्ट करने के लिए डेटाबेस का नाम है। यदि निर्दिष्ट नहीं है, तो कनेक्शन बिना डिफ़ॉल्ट डेटाबेस के साथ किया जाता है।

फेलओवर एक स्टैंडबाय डेटाबेस (MySQL कनेक्टर / J फेलओवर का समर्थन करता है) का नाम है।

propertyName = propertyValue गुणों की एक वैकल्पिक, एम्परसैंड-पृथक सूची का प्रतिनिधित्व करता है। ये विशेषताएँ आपको MySQL कनेक्टर / J को विभिन्न कार्यों को करने के लिए निर्देश देने में सक्षम बनाती हैं।


मैं कनेक्शन स्ट्रिंग में उपयोग करने के लिए तीन गुण है, तो कैसे होगा की तरह कनेक्शन स्ट्रिंग देखो - जैसे: useOldAliasMetadataBehavior=true, useUnicode=true, characterEncoding=UTF-8
n00b Pr0grammer

@ बी पवन कुमार यह एक यूआरआई है, इसलिए गुणों को एम्परसेंड्स ("और") द्वारा अलग किया जाना चाहिए, जैसा कि इस विनिर्देश में दर्शाया गया है।
टिम सिल्वेस्टर

1
@ N00bPr0grammerjdbc:mysql://[host][:port]/[database]?useOldAliasMetadataBehavior=true&useUnicode=true&characterEncoding=UTF-8
ssc-hrep3

5

यह बहुत ही सरल है :

  1. MySQL कार्यक्षेत्र पर जाएं और डेटाबेस> कनेक्शन प्रबंधित करें के लिए खोज करें
  2. आपको कनेक्शन की एक सूची दिखाई देगी। उस कनेक्शन पर क्लिक करें जिसे आप कनेक्ट करना चाहते हैं।
  3. आपको कनेक्शन, दूरस्थ प्रबंधन, सिस्टम प्रोफ़ाइल के चारों ओर एक टैब दिखाई देगा। कनेक्शन टैब पर क्लिक करें।
  4. आपका url jdbc:mysql://<hostname>:<port>/<dbname>?prop1आदि है <hostname>और जहां <port>कनेक्शन टैब में दिए गए हैं। यह ज्यादातर लोकलहोस्ट <dbname>होगा : 3306. विंडोज सर्विस नाम में सिस्टम प्रोफाइल टैब के तहत मिलेगा। डिफ़ॉल्ट ज्यादातर MySQL5 होगा <x>जहां x संस्करण संख्या उदा है। MySQL5.6 के लिए 56 और MySQL5.5 के लिए 55 आदि। आप भी कनेक्ट करने के लिए अपने स्वयं के विंडोज सेवा का नाम निर्दिष्ट कर सकते हैं।
  5. तदनुसार url का निर्माण करें और कनेक्ट करने के लिए url सेट करें।

5

Mysql के लिए, jdbc ड्राइवर कनेक्शन स्ट्रिंग com.mysql.jdbc.Driver है । कनेक्ट होने के लिए निम्न कोड का उपयोग करें: -

class DBConnection {
   private static Connection con = null;
   private static String USERNAME = "your_mysql_username";
   private static String PASSWORD = "your_mysql_password";
   private static String DRIVER = "com.mysql.jdbc.Driver";
   private static String URL = "jdbc:mysql://localhost:3306/database_name";

   public static Connection getDatabaseConnection(){
       Class.forName(DRIVER);
       return con = DriverManager.getConnection(URL,USERNAME,PASSWORD);
   }
}


2

जैसा कि उत्तर पहले से ही उत्तर दिया गया है, जोड़ने के लिए बहुत कुछ नहीं है, लेकिन मैं मौजूदा उत्तरों में एक बात जोड़ना चाहूंगा। यह mysql के लिए JDBC ड्राइवर के लिए लोडिंग क्लास का तरीका था

com.mysql.jdbc.Driver

लेकिन अब इसे हटा दिया गया है। नया ड्राइवर वर्ग अब है

com.mysql.cj.jdbc.Driver

इसके अलावा, ड्राइवर स्वचालित रूप से SPI के माध्यम से पंजीकृत होता है और ड्राइवर वर्ग का मैनुअल लोडिंग आमतौर पर अनावश्यक होता है।


0
String url = "jdbc:mysql://localhost:3306/dbname";
String user = "user";
String pass = "pass";
Class.forName ("com.mysql.jdbc.Driver").newInstance ();
Connection conn = DriverManager.getConnection (url, user, pass);

3306 mysql के लिए डिफ़ॉल्ट पोर्ट है।

यदि आप जावा 7 का उपयोग कर रहे हैं तो Class.forName("com.mysql.jdbc.Driver").newInstance ();स्टेटमेंट को जोड़ने की भी आवश्यकता नहीं है। JDBC 4.1 में जोड़ा गया है। जावा 7 में डिफ़ॉल्ट रूप से आता है।

MySQL सर्वर से कनेक्ट करने के लिए JDBC URL के लिए सामान्य प्रारूप निम्नानुसार है, वर्ग कोष्ठक में आइटम ([] वैकल्पिक होने के नाते:

jdbc:mysql://[host1][:port1][,[host2][:port2]]...[/[database]] »
[?propertyName1=propertyValue1[&propertyName2=propertyValue2]...]

0

प्रोटोकॉल // [मेजबान] [/ डेटाबेस] [? गुण]

यदि आपके पास कोई गुण नहीं है तो इसे नजरअंदाज करें

JDBC: mysql: //127.0.0.1: 3306 / परीक्षण

jdbc: mysql प्रोटोकॉल है 127.0.0.1: होस्ट है और 3306 है पोर्ट नंबर टेस्ट डेटाबेस है


0

यह इस बात पर निर्भर करता है कि आप किस सेवा का उपयोग कर रहे हैं।

यदि आप MySQL कार्यक्षेत्र का उपयोग करते हैं, तो यह कुछ इस तरह से होगा:

jdbc: mysql: // "host": "पोर्ट नंबर" /

String url = "jdbc:mysql://localhost:3306/";

और निश्चित रूप से यह अलग होगा यदि आप एसएसएल / एसएसएच का उपयोग कर रहे हैं।

अधिक जानकारी के लिए Jetbriens (intelliJ विचार) की आधिकारिक लिंक का पालन करें:

डेटाबेस से कनेक्ट करना #

https://www.jetbrains.com/help/idea/connecting-to-a-database.html


डेटाबेस कनेक्शन कॉन्फ़िगर करना #

https://www.jetbrains.com/help/idea/configuring-database-connections.html

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