मैं many reasons के लिए तैयार बयान का उपयोग करना चाहता हूं।मुझे तैयार किए गए स्टेटमेंट बनाने के लिए कनेक्शन की आवश्यकता क्यों है?
/* This opens a connection, executes the query, and closes the connection */
public static void executeNonQuery(String queryString);
दूसरे शब्दों में, मैं केवल क्वेरी को प्रतिपादित करने और मानकों में खिलाने के लिए है करने के लिए अपने आवेदन तर्क चाहते हैं, लेकिन कनेक्शन & बयान के साथ सौदा नहीं: लेकिन, मैं एक विधि है कि इस तरह दिखता है बनाना चाहते हैं, । हालांकि, प्रीपेडस्टेटमेंट्स को कनेक्शन ऑब्जेक्ट से बनाया गया है, इसलिए मुझे वर्तमान में स्ट्रिंग.फॉर्मैट() - बट बदसूरत और खतरनाक का उपयोग करके क्वेरी स्ट्रिंग तैयार करने के लिए मजबूर किया गया है।
क्या स्ट्रिंग.फॉर्मैट() का उपयोग किये बिना मुझे क्या करना है?
आपकी executeNonQuery विधि में एक समस्या है: कनेक्शन प्राप्त करना। यदि आप इस विधि को निष्पादित करते समय हर बार एक बनाते हैं, तो आपके पास अधिक से अधिक निष्पादित करने में प्रदर्शन समस्याएं होती हैं (कनेक्शन बनाना और बंद करना महंगा है)। यदि यह किसी ऑब्जेक्ट पर encapsulated है जो केवल पहली कॉल पर कनेक्शन बनाता है, तो आपको एक समस्या होगी: इसे बंद करने के लिए कब? शायद समय पर आधारित? यदि आप कैश करने के लिए स्थिर फ़ील्ड का उपयोग करते हैं, तो सावधान रहें कि इसे एकत्र नहीं किया जाएगा। एक कनेक्शन को कैश करते समय, समवर्ती कॉल से सावधान रहें, हालांकि: लॉक मैकेनिज्म (जैसे सिंक्रोननाइज्ड) के बिना, आप बहुत सारे कनेक्शन बना सकते हैं। –