Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

कनेक्टेड mysql डेटाबेस नाम (JDBC) प्राप्त करें

संभवतः JDBC कनेक्शन ऑब्जेक्ट से डेटाबेस नाम प्राप्त करने का सबसे सरल तरीका getCatalog() के माध्यम से है विधि:

Connection#getCatalog()

हालाँकि, जैसा कि कॉन्स्टेंटिन ने नीचे अपनी टिप्पणी में बताया, यदि वर्तमान MySQL डेटाबेस को USE dbname जारी करके बदल दिया जाता है, तो यह मान नहीं बदलेगा। बयान।

getCatalog() किसी एप्लिकेशन में अभी भी उपयोगी हो सकता है कि

  • डेटाबेस नहीं बदलता, या
  • setCatalog() . का उपयोग करके "द JDBC वे" काम करता है वर्तमान डेटाबेस को बदलने के लिए,

लेकिन MySQL के लिए, SELECT DATABASE() . का उपयोग करके समग्र रूप से अधिक सुरक्षित प्रतीत होता है।

यह भी ध्यान दें कि getCatalog() . के बीच यह संभावित विसंगति और वास्तविक वर्तमान डेटाबेस विशेष JDBC ड्राइवर के व्यवहार पर निर्भर करता है। जिज्ञासा से मैंने SQL सर्वर के लिए Microsoft JDBC ड्राइवर 4.0 और .getCatalog() के साथ कुछ ऐसा ही करने की कोशिश की वास्तव में USE dbname . चलाने के तुरंत बाद वर्तमान डेटाबेस में परिवर्तन के बारे में पता था बयान। यानी कोड

String connectionUrl = "jdbc:sqlserver://localhost:52865;"
        + "databaseName=myDb;" + "integratedSecurity=true";
try (Connection con = DriverManager.getConnection(connectionUrl)) {
    System.out.println(String.format(
            "getCatalog() returns: %s", 
            con.getCatalog()));
    try (Statement s = con.createStatement()) {
        System.out.println("           Executing: USE master");
        s.execute("USE master");
    }
    System.out.println(String.format(
            "getCatalog() returns: %s", 
            con.getCatalog()));
} catch (Exception e) {
    e.printStackTrace(System.out);
}

निम्नलिखित परिणाम दिए:

getCatalog() returns: myDb
           Executing: USE master
getCatalog() returns: master


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL में कई-से-अनेक कनेक्शन के लिए लिंकिंग तालिका को ठीक से कैसे अनुक्रमित करें?

  2. MySQL एक उपयोगकर्ता की प्रतिलिपि बनाएँ

  3. MySQL में एक शॉट में कई टेबल ड्रॉप करें

  4. प्राइमफेसेस 5.0 चार्ट - पूरी तरह से डेटाबेस मानों से चार्ट मॉडल और श्रृंखला को गतिशील रूप से कैसे बनाएं

  5. mysql:दूरस्थ IP का उपयोग करके लोकलहोस्ट से कनेक्ट करने का प्रयास करते समय कनेक्शन से इनकार कर दिया गया