जावा में डेटाबेस कनेक्शन बंद करने के बाद, क्या मैं इसे फिर से खोल सकता हूं? या मुझे फिर से DriverManager.getConnection()
करने की ज़रूरत है?जावा में डेटाबेस कनेक्शन दोबारा खोलें
उत्तर
मुझे 100% यकीन नहीं है कि DriverManager.getConnection()
पर कॉल करने के लिए आवश्यक है लेकिन नुकसान क्या है? आप कनेक्शन को पहले ही बंद कर चुके हैं, जब आपको इसकी आवश्यकता हो तो बस एक नया पकड़ लें। कचरा कलेक्टर उस बंद कनेक्शन के बारे में चिंतित होने के बाद चिंता करता है।
हाँ, आप कनेक्शन बंद करने के बाद कुछ भी नहीं कर सकते हैं। आप getConnection
कॉल करने के लिए Javadoc के रूप में है का उल्लेख है:
getConnection: Attempts to establish a connection to the given database URL.
इसलिए हाँ, getConnection बुला() फिर से एक ही तरीका है एक बार आप पिछले कनेक्शन बंद कर दिया डेटाबेस के साथ एक नया कनेक्शन स्थापित करने की तरह दिखता है।
यदि आपने connection.close();
कहा था, connection
(java.sql.Connection
प्रकार मानते हुए) बेकार हो जाता है। यह ऑपरेशन इस कनेक्शन ऑब्जेक्ट के डेटाबेस और जेडीबीसी संसाधनों को जारी करता है।
तो हाँ आप एक ताजा कनेक्शन लेने के लिए जब इससे पहले कि आप
connection = DriverManager.getConnection()
मैंने सी # में सबकुछ करने के बाद बस जेडीबीसी को एसक्यूएल सर्वर कनेक्शन करना शुरू कर दिया और लड़का कल मेरे आधे दिन के लिए यह एक बड़ा रहस्य था। – JoeManiaci
खैर आदर्श रूप में से आगे बढ़ सकते हैं मैं थोड़ा अलग दृष्टिकोण बना दिया है और एक अलग समाधान दिया की जरूरत है।
डेटाबेस खोलने और बंद करने के बजाय, जो क्लाइंट के हर अनुरोध पर सचमुच हो रहा है, मैंने कक्षा के सिंगलटन इंस्टेंस को बनाया और एकल खुला कनेक्शन बनाया जिसे सर्वर की प्रक्रिया जिंदा रहने तक पुन: उपयोग की जाएगी।
संक्षेप में:
मैं Database
वर्ग getConnection()
Database
अंदर वर्ग
public Connection getConnection() throws Exception {
try {
String connectionURL = "jdbc:mysql://localhost:3306/someDatabase";
Class.forName("com.mysql.jdbc.Driver").newInstance();
if (connection == null) {
connection = DriverManager.getConnection(connectionURL, "someUser", LOCAL_MYSQL_PASSWORD);
}
return connection;
} catch (Exception e) {
}
}
सिंगलटन है, इसलिए एक ही कक्षा पुन: उपयोग और एक ही कनेक्शन पुन: उपयोग कर सकते है।
मैंने इसे show processList
द्वारा परीक्षण किया है, और यह लगभग 100 कनेक्शन दे रहा था अगर मैं कनेक्शन बंद नहीं करूँगा, और यहां तक कि अगर मैं कनेक्शन बंद कर दूंगा, तो वास्तविक प्रक्रिया को मारने की संभावना नहीं होगी, लेकिन सोने में डाला जाएगा इसके बजाए इसका उपयोग तब भी किया जाएगा जब भी वही ग्राहक एक ही अनुरोध के लिए पूछेगा, लेकिन यदि आपके पास 15 अनुरोध हैं, तो उनमें से प्रत्येक के पास अलग-अलग प्रक्रियाएं होंगी, इसलिए मेरे लिए कनेक्शन बंद करना और खोलना सबसे अच्छा समाधान नहीं था।
इसके द्वारा मेरे पास 1 एकल प्रक्रिया है जो प्रश्नों के लिए जिम्मेदार परत है।
- 1. डेटाबेस कनेक्शन कहां और कब खोलें
- 2. जावा मॉक डेटाबेस कनेक्शन
- 3. पायथन में फ़ाइलों को दोबारा खोलें?
- 4. फ़ैब्रिकेटर में अंतर समीक्षा को दोबारा कैसे खोलें?
- 5. मोंगोडीबी जावा ड्राइवर डेटाबेस कनेक्शन टॉमकैट
- 6. जावा + टोमकैट, डेटाबेस कनेक्शन मर रहा है?
- 7. कनेक्शन पूल से डेटाबेस कनेक्शन प्राप्त करें
- 8. कनेक्शन एक दूरस्थ डेटाबेस
- 9. डेटाबेस खोलें और sqlite3 में टेबल देखें?
- 10. जावा + स्क्लाइट: केवल पढ़ने के लिए डेटाबेस को कैसे खोलें?
- 11. विषम डेटाबेस कनेक्शन
- 12. कोर डेटा डेटाबेस कैसे खोलें?
- 13. विम, आखिरी बंद खिड़की को दोबारा खोलें, जो विभाजित
- 14. एसक्यूएल कॉम्पैक्ट डेटाबेस को कैसे खोलें केवल
- 15. सी # डेटाबेस कनेक्शन देरी
- 16. मल्टीथ्रेडिंग और डेटाबेस कनेक्शन
- 17. डेटाबेस कनेक्शन php-mysql
- 18. भंडारण डेटाबेस कनेक्शन
- 19. डेटाबेस कनेक्शन जानकारी
- 20. वैश्विक परिवर्तनीय - डेटाबेस कनेक्शन?
- 21. डेटाबेस कनेक्शन पूल बनाना
- 22. कोडनिर्देशक - एकाधिक डेटाबेस कनेक्शन
- 23. Django डेटाबेस कनेक्शन त्रुटि
- 24. जावा JDBC कनेक्शन स्थिति
- 25. जावा में नोटपैड फ़ाइल कैसे खोलें?
- 26. जावा (टीएम) में खोलें प्लेटफार्म एसई बाइनरी
- 27. एसक्यूएलसीई कनेक्शन: उन्हें खोलें या उन्हें बंद करें?
- 28. जावा में कितने जेडीबीसी कनेक्शन?
- 29. c3p0 सभी डेटाबेस कनेक्शन को कैसे बंद करें और आवश्यकता होने पर उन्हें फिर से खोलें?
- 30. हेरोकू बाहरी MySQL डेटाबेस कनेक्शन
इसे कितना कठिन प्रयास कर रहा है? –
क्या आप कनेक्शन पर कोई भी खुली विधि देखते हैं? – MrJames
मुझे कनेक्शन में कोई भी खुली विधि नहीं दिखाई देती है। तो मैं इसे कैसे कोशिश करूं? कॉलिंग 'getConnection' काम करेगा, कोशिश की, लेकिन "सही" तरीका है? –