Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> MySql

JDBC में कॉल करने योग्य कथन का उपयोग करके संग्रहीत कार्यविधि को कैसे कॉल करें?

<घंटा/>

आप CallableStatement इंटरफ़ेस का उपयोग करके SQL संग्रहीत कार्यविधियों को कॉल कर सकते हैं। कॉल करने योग्य स्टेटमेंट में इनपुट पैरामीटर, आउटपुट पैरामीटर या दोनों हो सकते हैं।

आप CallableStatement . का एक ऑब्जेक्ट बना सकते हैं (इंटरफ़ेस) prepareCall() . का उपयोग करके कनेक्शन . की विधि इंटरफेस। यह विधि संग्रहीत कार्यविधियों को कॉल करने के लिए एक क्वेरी का प्रतिनिधित्व करने वाले एक स्ट्रिंग चर को स्वीकार करती है और एक CallableStatement लौटाती है वस्तु।

मान लीजिए कि आपके पास एक प्रक्रिया नाम है myProcedure डेटाबेस में आप एक कॉल करने योग्य स्टेटमेंट तैयार कर सकते हैं:

//एक CallableStatementCallableStatement तैयार करना cstmt =con.prepareCall("{call myProcedure(?,?, ?)}");

फिर आप CallableStatement इंटरफ़ेस के सेटर विधियों का उपयोग करके प्लेसहोल्डर्स के लिए मान सेट कर सकते हैं और नीचे दिखाए गए अनुसार एक्ज़ीक्यूट () विधि का उपयोग करके कॉल करने योग्य स्टेटमेंट को निष्पादित कर सकते हैं।

cstmt.setString(1, "राघव");cstmt.setInt(2, 3000);cstmt.setString(3, "Hyderabad");cstmt.execute();

यदि प्रक्रिया के लिए कोई इनपुट मान नहीं हैं, तो आप बस कॉल करने योग्य विवरण तैयार कर सकते हैं और इसे नीचे दिखाए अनुसार निष्पादित कर सकते हैं:

CallableStatement cstmt =con.prepareCall("{call myProcedure()}");cstmt.execute();

उदाहरण

मान लीजिए हमारे पास प्रेषण . नाम की एक तालिका है निम्नलिखित डेटा के साथ MySQL डेटाबेस में:

<पूर्व>+--------------+----------------------------+----------- ------+----------------+| Product_Name | Date_Of_Dispatch | Time_Of_Dispatch | स्थान |+--------------+----------------------------+--------------- -----+----------------+| की-बोर्ड | 1970-01-19 | 08:51:36 | हैदराबाद || इयरफ़ोन | 1970-01-19 | 05:54:28 | विशाखापत्तनम || माउस | 1970-01-19 | 04:26:38 | विजयवाड़ा | -----+----------------+

और अगर हमने इस तालिका से मूल्यों को पुनः प्राप्त करने के लिए myProcedure नाम की एक प्रक्रिया बनाई है जैसा कि नीचे दिखाया गया है:

प्रक्रिया बनाएं myProcedure ()-> BEGIN-> SELECT * From Dispatches;-> END //

उदाहरण

निम्नलिखित एक JDBC उदाहरण है जो JDBC प्रोग्राम का उपयोग करके उपर्युक्त संग्रहीत कार्यविधि को कॉल करता है।

आयात करें ]) SQLException फेंकता है {// ड्राइवर DriverManager.registerDriver को पंजीकृत करना (नया com.mysql.jdbc.Driver ()); // कनेक्शन प्राप्त करना स्ट्रिंग mysqlUrl ="jdbc:mysql://localhost/sampleDB"; कनेक्शन कॉन =DriverManager.getConnection (mysqlUrl, "रूट", "पासवर्ड"); System.out.println ("कनेक्शन स्थापित ......"); // एक कॉल करने योग्य स्टेटमेंट तैयार करना कॉल करने योग्य स्टेटमेंट cstmt =con.prepareCall ("{कॉल myProcedure ()}"); // परिणाम प्राप्त करना परिणामसेट आरएस =cstmt.executeQuery (); जबकि (rs.next ()) {System.out.println ("उत्पाद का नाम:" + rs.getString ("Product_Name")); System.out.println ("प्रेषण की तिथि:" + rs.getDate ("Date_Of_Dispatch")); System.out.println ("प्रेषण का समय:" + rs.getTime ("Time_Of_Dispatch")); System.out.println ("स्थान:" + rs.getString ("स्थान")); System.out.println (); } }}

आउटपुट

कनेक्शन स्थापित...उत्पाद का नाम:कुंजी बोर्ड प्रेषण की तिथि:1970-01-19प्रेषण का समय:08:51:36 स्थान:हैदराबाद उत्पाद का नाम:इयरफ़ोन प्रेषण की तिथि:1970-01-19 प्रेषण का समय:05:54 :28 स्थान:विशाखापत्तनम उत्पाद का नाम:माउस प्रेषण की तिथि:1970-01-19 प्रेषण का समय:04:26:38 स्थान:विजयवाड़ा

  1. MySQL में संग्रहीत प्रक्रिया के माध्यम से लूप कैसे करें?

    आइए देखें कि MySQL में संग्रहीत कार्यविधि के माध्यम से लूप कैसे करें DELIMITER; अब कॉल कमांड की मदद से स्टोर की गई प्रक्रिया को कॉल करें। क्वेरी इस प्रकार है do_WhileDemo(10) पर कॉल करें; निम्न आउटपुट है +----------+| @लूप |+----------+| 1 |+----------+1 पंक्ति सेट में (0.00 सेकंड)+----------+|

  1. MySQL संग्रहीत प्रक्रिया आउटपुट को कैसे दबाएं?

    MySQL संग्रहीत कार्यविधि आउटपुट को दबाने के लिए, आप चर का उपयोग कर सकते हैं। आइए पहले एक टेबल बनाएं। );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.50 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालने के लिए क्वेरी निम्नलिखित है: व्यक्ति_सूचना मान (102, रॉबर्ट) में डालें; क्वेरी ठीक है, 1 पंक्त

  1. MySQL में चुनिंदा कथन का उपयोग करके संग्रहीत प्रक्रिया को कैसे कॉल करें?

    MySQL में, FROM क्लॉज में सेलेक्ट फ्रॉम प्रोसेस का उपयोग करना संभव नहीं है। आप कॉल कमांड का उपयोग कर सकते हैं और उसके बाद सेलेक्ट स्टेटमेंट को निष्पादित किया जा सकता है। आइए पहले एक टेबल बनाएं: );क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित (0.66 सेकंड) संग्रहीत कार्यविधि बनाने की क्वेरी निम्नलिखित है: D