संग्रहीत कार्यविधियों के निम्नलिखित लाभ हैं:
-
चूंकि संग्रहित प्रक्रियाओं को संकलित और संग्रहीत किया जाता है, जब भी आप किसी प्रक्रिया को कॉल करते हैं तो प्रतिक्रिया त्वरित होती है।
-
आप सभी आवश्यक SQL कथनों को एक प्रक्रिया में समूहित कर सकते हैं और उन्हें एक साथ निष्पादित कर सकते हैं।
-
चूंकि प्रक्रियाओं को डेटाबेस सर्वर पर संग्रहीत किया जाता है जो क्लाइंट की तुलना में तेज़ होता है। आप इसका उपयोग करके सभी जटिल प्रश्नों को निष्पादित कर सकते हैं, जो तेज़ होंगे।
-
प्रक्रियाओं का उपयोग करके, आप कोड की पुनरावृत्ति से बच सकते हैं इसके अलावा आप अतिरिक्त SQL कार्यात्मकताओं का उपयोग कर सकते हैं जैसे संग्रहीत कार्यों को कॉल करना।
-
एक बार जब आप एक संग्रहित प्रक्रिया संकलित कर लेते हैं तो आप इसे किसी भी संख्या में अनुप्रयोगों में उपयोग कर सकते हैं। यदि किसी परिवर्तन की आवश्यकता है तो आप एप्लिकेशन कोड को छुए बिना ही प्रक्रियाओं को बदल सकते हैं।
-
आप जावा से पीएल/एसक्यूएल संग्रहित प्रक्रियाओं को कॉल कर सकते हैं और पीएल/एसक्यूएल से जावा संग्रहित प्रक्रियाओं को कॉल कर सकते हैं।
उदाहरण
मान लें कि हमने निम्नलिखित विवरण के साथ कर्मचारी नाम की एक तालिका बनाई है:
<पूर्व>+----------+--------------+----------+-----+---------- ---+----------+| फील्ड | प्रकार | शून्य | कुंजी | डिफ़ॉल्ट | अतिरिक्त |+----------+--------------+----------+-----+-------- -+----------+| नाम | वर्चर (255) | हाँ | | नल | || वेतन | इंट(11) | नहीं | | नल | || स्थान | वर्चर (255) | हाँ | | नल | |+----------+--------------+----------+-----+-------- +----------+मान लें कि हमारे पास myProcedure नाम की एक प्रक्रिया है जो कर्मचारी तालिका में डेटा सम्मिलित करती है:
प्रक्रिया बनाएं myProcedure (नाम में VARCHAR(30), IN साल INT, IN loc VARCHAR(45)) -> BEGIN -> INSERT INTO Employees(Name, Salary, Location) VALUES (नाम, साल, लोक); -> अंत //
निम्नलिखित JDBC प्रोग्राम उपरोक्त जावा संग्रहीत कार्यविधि को कॉल करता है।
आयात करें ड्राइवर का पंजीकरण करना DriverManager.registerDriver(new com.mysql.jdbc.Driver()); // कनेक्शन प्राप्त करना स्ट्रिंग mysqlUrl ="jdbc:mysql://localhost/testdb"; कनेक्शन कॉन =DriverManager.getConnection (mysqlUrl, "रूट", "पासवर्ड"); System.out.println ("कनेक्शन स्थापित ......"); // कॉल करने योग्य स्टेटमेंट तैयार करना कॉल करने योग्य स्टेटमेंट cstmt =con.prepareCall ("{कॉल myProcedure (?,?,?)}"); cstmt.setString(1, "अमित"); cstmt.setInt(2, 3000); cstmt.setString(3, "हैदराबाद"); cstmt.execute (); cstmt.setString(1, "कल्याण"); cstmt.setInt(2, 4000); cstmt.setString(3, "विशाखापत्तनम"); cstmt.execute (); }}पूर्व>आउटपुट
कनेक्शन स्थापित हो गया......
यदि आप कर्मचारी तालिका की सामग्री को सत्यापित करते हैं, तो आप नीचे दिखाए गए अनुसार नई जोड़ी गई पंक्तियाँ पा सकते हैं:
+-----------+-----------+----------------+| नाम | वेतन | स्थान |+-----------+-----------+----------------+| अमित | 3000 | हैदराबाद || कल्याण | 4000 | विशाखापत्तनम |+-----------+----------+----------------+