जैसा कि MySQL में वर्णित है दस्तावेज़ीकरण
आपको उपयोग करने की आवश्यकता है Connection.setCatalog()
दूसरे डेटाबेस पर स्विच करने के लिए। यह भी स्पष्ट रूप से कहता है कि आपको नहीं . करना चाहिए एक USE <databasename>
निष्पादित करें स्विच करने के लिए।
इस चेतावनी का कारण यह है कि JDBC डेटाबेस के लिए एक सामान्य इंटरफ़ेस है और इसलिए catalogs
स्विच करने सहित अधिकांश सामान्य कार्यों के लिए विधियाँ प्रदान करता है। (या databases
जैसा कि वे MySQL में हैं)। जेडीबीसी विनिर्देश/जावाडोक भी स्पष्ट रूप से कहता है कि लोगों को डेटाबेस विशिष्ट आदेशों पर एपीआई का उपयोग करना चाहिए (यदि दोनों उपलब्ध हैं)। इसके कई कारण हैं:1) यह डेटाबेस-स्वतंत्र कोड को बढ़ावा देता है, और 2) ड्राइवर एपीआई विधियों में से किसी एक के जवाब में आंतरिक रूप से अतिरिक्त चीजें कर सकता है। डेटाबेस विशिष्ट कमांड का उपयोग करने से ड्राइवर गलत व्यवहार कर सकता है क्योंकि इसकी आंतरिक स्थिति डेटाबेस स्थिति से मेल नहीं खाती है।
एक कॉल setCatalog(String)
मौजूदा बयानों को प्रभावित नहीं करेगा, जैसा कि JDBC API दस्तावेज़ में निर्दिष्ट है: