तैयार विवरण इंटरफ़ेस स्टेटमेंट इंटरफ़ेस का विस्तार करता है यह एक पूर्व-संकलित SQL स्टेटमेंट का प्रतिनिधित्व करता है जिसे कई बार निष्पादित किया जा सकता है। यह पैरामीटरयुक्त SQL quires को स्वीकार करता है और आप इस क्वेरी के लिए 0 या अधिक पैरामीटर पास कर सकते हैं।
प्रारंभ में यह कथन स्थान धारकों का उपयोग करता है “?” पैरामीटर के बजाय, बाद में आप PreparedStatement की setXXX() विधियों का उपयोग करके इन गतिशील रूप से तर्क पारित कर सकते हैं इंटरफ़ेस।
तैयार विवरण बनाना
आप तैयार विवरण . का एक ऑब्जेक्ट बना सकते हैं (इंटरफ़ेस) prepareStatement() . का उपयोग करके कनेक्शन इंटरफ़ेस की विधि। यह विधि एक क्वेरी (पैरामीटरीकृत) को स्वीकार करती है और एक रेडीस्टेडमेंट ऑब्जेक्ट लौटाती है।
जब आप इस विधि को लागू करते हैं तो कनेक्शन ऑब्जेक्ट डेटाबेस को संकलित और सहेजने के लिए दी गई क्वेरी भेजता है। यदि क्वेरी सफलतापूर्वक संकलित हो जाती है तो ही वह वस्तु लौटाती है।
किसी क्वेरी को संकलित करने के लिए, डेटाबेस को किसी भी मान की आवश्यकता नहीं होती है ताकि आप (शून्य या अधिक) प्लेसहोल्डर का उपयोग कर सकें (प्रश्न चिह्न ” ?” ) क्वेरी में मानों के स्थान पर।
उदाहरण के लिए, यदि आपके पास कर्मचारी . नाम की एक तालिका है डेटाबेस में, निम्न क्वेरी का उपयोग करके बनाया गया है।
क्रिएट टेबल एम्प्लॉई (नाम वचर (255), सैलरी इंट नॉट न्यूल, लोकेशन वचर (255));
फिर आपको नीचे दिखाए गए अनुसार इसमें मान डालने के लिए एक तैयार विवरण का उपयोग करना चाहिए।
//तैयार स्टेटमेंट बनाना स्ट्रिंग क्वेरी ="कर्मचारी (नाम, वेतन, स्थान) मान (?,?,?)" में डालें; स्टेटमेंट pstmt =con.prepareStatement(query);
स्थान धारकों के लिए मान सेट करना
तैयार विवरण इंटरफ़ेस कई सेटर विधियाँ प्रदान करता है जैसे कि सेटइंट (), सेटफ्लोट (), सेटअरे (), सेटडेट (), सेटडबल () आदि .. तैयार स्टेटमेंट के प्लेस होल्डर को मान सेट करने के लिए।
ये विधियां दो तर्कों को स्वीकार करती हैं, एक पूर्णांक मान है जो स्थान फ़ोल्डर के प्लेसमेंट इंडेक्स का प्रतिनिधित्व करता है और दूसरा एक int या, स्ट्रिंग या, फ्लोट इत्यादि है ... उस विशेष स्थान पर डालने के लिए आवश्यक मान का प्रतिनिधित्व करता है।
जैसा कि नीचे दिखाया गया है, आप सेटर विधियों का उपयोग करके उपरोक्त बनाए गए स्टेटमेंट के प्लेसहोल्डर्स के लिए मान सेट कर सकते हैं:
pstmt.setString(1, "Amit");pstmt.setInt(2, 3000);pstmt.setString(3, "Hyderabad");pstmt.setString(1, "Kalyan");pstmt.setInt(2 , 4000); pstmt.setString(3, "विशाखापत्तनम"); pstmt.setString(1, "रेणुका"); pstmt.setInt(2, 5000); pstmt.setString(3, "दिल्ली"); pstmt.setString( 1, "अर्चना");pstmt.setInt(2, 15000);pstmt.setString(3, "मुंबई");
तैयार विवरण निष्पादित करना
एक बार जब आप रेडीस्टेडमेंट ऑब्जेक्ट बना लेते हैं तो आप इसे execute() में से किसी एक का उपयोग करके निष्पादित कर सकते हैं रेडीडस्टेटमेंट इंटरफ़ेस की विधियाँ, अर्थात् निष्पादित करें () , निष्पादित करेंअपडेट () और, executeQuery()।
-
निष्पादित करें (): यह विधि वर्तमान तैयार कथन वस्तु में सामान्य स्थिर SQL कथन निष्पादित करती है और एक बूलियन मान लौटाती है।
-
executeQuery(): यह विधि वर्तमान तैयार किए गए कथन को निष्पादित करती है और एक परिणामसेट वस्तु लौटाती है।
-
निष्पादित करेंअपडेट (): यह विधि SQL DML स्टेटमेंट को निष्पादित करती है जैसे कि वर्तमान तैयार स्टेटमेंट में अपडेट डालें या हटाएं। यह प्रभावित पंक्तियों की संख्या का प्रतिनिधित्व करने वाला एक पूर्णांक मान देता है।
जैसा कि नीचे दिखाया गया है, आप ऊपर बनाए गए तैयार किए गए कथन को निष्पादित कर सकते हैं:
उदाहरण
इस उदाहरण में हम तैयार किए गए कथन का उपयोग करके कर्मचारी नामक तालिका में मान सम्मिलित करने का प्रयास कर रहे हैं।
आयात करें ड्राइवर का पंजीकरण करना DriverManager.registerDriver(new com.mysql.jdbc.Driver()); // कनेक्शन प्राप्त करना स्ट्रिंग mysqlUrl ="jdbc:mysql://localhost/testdb"; कनेक्शन कॉन =DriverManager.getConnection (mysqlUrl, "रूट", "पासवर्ड"); System.out.println ("कनेक्शन स्थापित ......"); // एक तैयार स्टेटमेंट स्ट्रिंग क्वेरी बनाना ="कर्मचारियों में सम्मिलित करें (नाम, वेतन, स्थान) मान (?,?,?)"; रेडीस्टेडमेंट pstmt =con.prepareStatement (क्वेरी); pstmt.setString(1, "अमित"); pstmt.setInt(2, 3000); pstmt.setString(3, "हैदराबाद"); pstmt.setString(1, "कल्याण"); pstmt.setInt(2, 4000); pstmt.setString(3, "विशाखापत्तनम"); pstmt.setString(1, "रेणुका"); pstmt.setInt(2, 5000); pstmt.setString(3, "दिल्ली"); pstmt.setString(1, "अर्चना"); pstmt.setInt(2, 15000); pstmt.setString(3, "मुंबई"); इंट संख्या =pstmt.executeUpdate (); System.out.println ("पंक्तियाँ डाली गई ...."); }}पूर्व>आउटपुट
कनेक्शन स्थापित हो गया......सम्मिलित पंक्तियों की संख्या:1
यदि आप डेटाबेस को सत्यापित करते हैं, तो आप तालिका में सम्मिलित मानों को इस प्रकार देख सकते हैं:
<पूर्व>+------+--------+----------------+| नाम | वेतन | स्थान |+---------+----------+----------------+| अमित | 30000 | हैदराबाद || कल्याण | 40000 | विशाखापत्तनम || रेणुका | 50000 | दिल्ली || अर्चना | 15000 | मुंबई |+-----------+-----------+----------------+5 पंक्तियों में सेट (0.00 सेकंड)