jdbc batch processing
यह ट्यूटोरियल JDBC बैच प्रोसेसिंग और जावा संग्रहित प्रक्रिया की पूरी समझ नमूना जावा उदाहरण के साथ प्रदान करता है:
में JDBC अपवाद हैंडलिंग का ट्यूटोरियल JDBC ट्यूटोरियल श्रृंखला , हमने प्रोग्रामिंग उदाहरणों की मदद से SQL अपवादों को संभालने के तरीके सीखे।
इस ट्यूटोरियल में, हम JDBC ड्राइवर का उपयोग करके जावा में बैच प्रोसेसिंग करने के तरीकों पर चर्चा करेंगे। हम संग्रहीत प्रक्रियाओं को बनाने और जावा प्रोग्राम से इसे कॉल करने के तरीके के बारे में भी जानेंगे।
आइए बैच प्रोसेसिंग और उसके फायदों को समझने के साथ शुरुआत करें।
आप क्या सीखेंगे:
JDBC बैच प्रसंस्करण
यह एक लेन-देन में कई SQL कथनों को निष्पादित करने की प्रक्रिया है। यह प्रक्रिया संचार समय को कम करती है और प्रदर्शन बढ़ाती है। यह बड़ी मात्रा में डेटा को संसाधित करना बहुत आसान बनाता है।
बैच प्रसंस्करण के लाभ
बैच प्रोसेसिंग का उद्देश्य प्रदर्शन और डेटा स्थिरता में सुधार करना है।
प्रदर्शन
उस परिदृश्य पर विचार करें जहां JAVA प्रोग्राम की तालिका में एकाधिक (मान 5) प्रविष्टियाँ जोड़ी जानी हैं। सीधे दृष्टिकोण डेटाबेस के लिए एक कनेक्शन खोल रहा होगा, INSERT प्रश्नों को लिख रहा है, और स्टेटमेंट या रेडीमेड संशोधन का उपयोग करके प्रत्येक क्वेरी को निष्पादित करेगा।
यह दृष्टिकोण डेटाबेस के लिए नेटवर्क यात्राओं को बढ़ाएगा और परिणामस्वरूप, यह खराब प्रदर्शन को बढ़ावा देगा। बैच प्रोसेसिंग का उपयोग करके, हम एक कॉल में इस ऑपरेशन को कर सकते हैं।
डेटा संगतता
कुछ मामलों में, हमें कई तालिकाओं में डेटा सम्मिलित / अद्यतन करने की आवश्यकता है। इससे एक अंतःसंबंधित लेन-देन होगा जहां प्रश्नों के अनुक्रम को डाला या अद्यतन किया जाना महत्वपूर्ण है। निष्पादन के दौरान होने वाली किसी भी त्रुटि के परिणामस्वरूप पिछले प्रश्नों द्वारा डाले गए डेटा का रोलबैक होगा यदि कोई हो।
उदाहरण:
# 1) तालिका 'EMPLOYEE_DET Colors' में 3 कॉलम हैं: ईद , नाम , तथा कर्मचारी की भूमिका।
statement.execute('INSERT INTO EMPLOYEE_DETAILS(ID, NAME, ROLE) ' + 'VALUES ('1','EMPLOYEE_NAME1','ROLE1')');
#दो) तालिका 'EMPLOYEE_ADDRESS' में 2 कॉलम हैं: ईएमपी आईडी तथा पता
statement.execute('INSERT INTO EMPLOYEE_ADDRESS( EMP_ID, ADDRESS) ' + 'VALUES ('1','ADDRESS1')');
उपरोक्त उदाहरण में कोई समस्या हो सकती है जब पहला कथन सफलतापूर्वक निष्पादित होता है, लेकिन दूसरा कथन विफल हो जाता है। इस स्थिति में, पहले बयान द्वारा डाले गए डेटा का कोई रोलबैक नहीं है। इससे डेटा असंगति हो जाती है।
हम अंत में लेन-देन करने या किसी अपवाद के मामले में रोलबैक प्रदर्शन करके डेटा स्थिरता प्राप्त कर सकते हैं। लेकिन, इसे हासिल करने के लिए, डीबी को हर बयान के लिए बार-बार हिट होना पड़ता है।
दूसरी ओर, बैच प्रोसेसिंग में, जब बैच के अंदर सभी क्वेरी सफलतापूर्वक निष्पादित होती हैं, तो डेटा प्रतिबद्ध होगा। अन्यथा, यह नहीं हुआ।
बैच प्रोसेसिंग कैसे करें
हम Addbatch () और executeBatch () विधियों का उपयोग करके बैच प्रोसेसिंग कर सकते हैं जो स्टेटमेंट और रेडीमेड क्लास कक्षाओं दोनों में उपलब्ध हैं।
इस ट्यूटोरियल में, सभी प्रोग्राम जावा में लिखे गए हैं। हमने जावा 8 संस्करण और ओरेकल डीबी का उपयोग किया है।
=> Oracle सॉफ्टवेयर डाउनलोड करने के लिए यहां क्लिक करें
=> जावा संस्करण 8 डाउनलोड करने के लिए यहां क्लिक करें
निम्नलिखित उदाहरण में, हम देखेंगे कि कैसे विस्तृत रूप से बैच प्रसंस्करण करना है। इसमें चरण-दर-चरण जावा स्थापना प्रक्रिया है।
डेटा डालने से पहले EMPLOYEE तालिका में डेटा:
जब किसी सरणी का एक अलग तत्व एक विधि को दिया जाता है:
जावा प्रोग्राम
package com.STH.JDBC; import java.sql.BatchUpdateException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class ExecuteBatch_Example { public static void main(String() args) throws ClassNotFoundException, SQLException { //Inserting the data in EMPLOYEE Table using the following query String insert_query1 = 'insert into employee values(?,?,?)'; Class.forName('oracle.jdbc.driver.OracleDriver'); Try(Connection conn = DriverManager.getConnection('jdbc:oracle:thin:system/pass123@localhost:1521:XE')) { PreparedStatement pstatemnt1 = conn.prepareStatement(insert_query1); //Setting values for the 1st person in EMPLOYEE Table pstatemnt1.setInt(1,10001); pstatemnt1.setString(2, 'Bush'); pstatemnt1.setString(3, 'William '); //Adding the 1st insert query into batch pstatemnt1.addBatch(); //Setting values for the 2nd person in EMPLOYEE Table pstatemnt1.setInt(1,10002); pstatemnt1.setString(2, “Bush'); pstatemnt1.setString(3, 'George'); //Adding the 2nd insert query into batch pstatemnt1.addBatch(); //Setting values for the 3rd person in EMPLOYEE Table pstatemnt1.setInt(1,10003); pstatemnt1.setString(2, 'Bond'); pstatemnt1.setString(3, 'James'); //Adding the 3rd insert query into batch pstatemnt1.addBatch(); //Executing the executeBatch method int No_of_Afffected_Rows()= pstatemnt1.executeBatch(); //After inserting the data, displaying no. of rows affected System.out.println('No of rows affected = ' +No_of_Afffected_Rows.length);} catch (SQLException e) { e.printStackTrace();} } }
OUTPUT:
डेटा डालने के बाद EMPLOYEE तालिका में डेटा:
स्पष्टीकरण:
उपरोक्त कार्यक्रम में, हमने बैच ऑपरेशन का उपयोग करके एक कॉल में 3 कर्मचारियों का डेटा डाला है।
- स्तंभ मानों को पास करने के लिए एक सम्मिलित क्वेरी बनाएँ।
- कनेक्शन खोलें और कनेक्शन ऑब्जेक्ट का उपयोग करके एक तैयार किया गया ऑब्जेक्ट बनाएं और तैयार करने की विधि को कॉल करें।
- फिर 1 के लिए मान सेट करेंअनुसूचित जनजातिकर्मचारी ने setXXX विधियों का उपयोग किया और बैच में नई पंक्ति को जोड़ने के लिए addBatch () विधि को कॉल किया।
- इस तरह, 2 के लिए मान जोड़ेंएन डीऔर 3तृतीयकर्मचारियों। AddBatch () विधि में प्रश्नों को जोड़ने के बाद, हमें तैयार किए गए ऑब्जेक्ट का उपयोग करके निष्पादन योग्य () विधि को कॉल करना चाहिए।
- निष्पादित करें () विधि एक कॉल में 3 कर्मचारी के डेटा को सम्मिलित करती है।
- EMPLOYEE तालिका जांचें कि डेटा ठीक से डाला गया है या नहीं।
जावा संग्रहीत कार्यविधियाँ
एक संग्रहीत प्रक्रिया SQL बयानों का एक समूह है जो एक एकल इकाई बनाती है और एक विशिष्ट कार्य करती है। उनका उपयोग किसी डेटाबेस सर्वर पर निष्पादित करने के लिए संचालन या प्रश्नों का एक सेट करने के लिए किया जाएगा। इसे विभिन्न मापदंडों और परिणामों के साथ संकलित और निष्पादित किया जा सकता है।
प्रत्येक प्रक्रिया को निर्दिष्ट करने के लिए इसका अनूठा नाम है। यह उपप्रोग्राम इकाई डीबी में एक डेटाबेस ऑब्जेक्ट के रूप में संग्रहीत है।
एक उपप्रोग्राम कुछ भी नहीं है, लेकिन एक प्रक्रिया है, और इसे मैन्युअल रूप से बनाया जाना चाहिए जैसा कि हम चाहते हैं और इसे डीबी ऑब्जेक्ट के रूप में संग्रहीत करते हैं।
संग्रहीत कार्यविधियाँ एक प्रोग्राम के स्टैंडअलोन ब्लॉक हैं जिन्हें हम DB में स्टोर कर सकते हैं। संग्रहीत प्रक्रिया के नाम का उपयोग करके, हम इसे कॉल और निष्पादित कर सकते हैं। इसका उपयोग मुख्य रूप से PL / SQL में एक प्रक्रिया को निष्पादित करने के लिए किया जाता है। प्रक्रिया में नेस्टेड ब्लॉक हो सकते हैं या अन्य ब्लॉक के अंदर नेस्टेड हो सकते हैं।
संग्रहीत प्रक्रिया में 3 भाग होते हैं:
- घोषणा भाग (वैकल्पिक): इस भाग में, हम चर, स्थिरांक, श्रापकर्ता आदि की घोषणा कर सकते हैं। यह एक वैकल्पिक हिस्सा है। आवश्यकताओं के आधार पर, हम इसका उपयोग कर सकते हैं।
- निष्पादन भाग: इस भाग में प्रक्रिया का मुख्य व्यावसायिक तर्क है। आम तौर पर इसमें SQL स्टेटमेंट का एक ब्लॉक होगा।
- असाधारण हैंडलिंग हिस्सा (वैकल्पिक): इस भाग में, हम अपवाद भाग के कारण होने वाले अपवाद को संभाल सकते हैं। यह वैकल्पिक भी है।
आवश्यकताओं के आधार पर, हम एक प्रक्रिया बना सकते हैं। हम मापदंडों से मानों को पारित या पुनः प्राप्त कर सकते हैं।
संग्रहीत कार्यविधियों में तीन प्रकार के पैरामीटर उपलब्ध हैं। वे:
- में: इसका उपयोग इनपुट मान को संग्रहीत कार्यविधि में पास करने के लिए किया जाता है। संग्रहीत कार्यविधि प्रोग्राम में इनपुट पैरामीटर का उपयोग केवल-पढ़ने योग्य चर के रूप में करेगी। उपप्रोग्राम के अंदर मान नहीं बदला जा सकता है। ओरेकल पैरामीटर के डिफ़ॉल्ट मोड के रूप में IN का उपयोग करता है। यह डिफ़ॉल्ट पैरामीटर है।
- बाहर: इसका उपयोग निष्पादन के बाद संग्रहीत प्रक्रिया से मूल्य प्राप्त करने या प्राप्त करने के लिए किया जाता है। यह उपप्रोग्राम के अंदर एक पढ़ा-लिखा चर है। उपप्रोग्राम के अंदर मान को बदला जा सकता है।
- अंदर बाहर: इसका उपयोग इनपुट मानों को संग्रहीत कार्यविधि में पास करने के लिए किया जाता है और प्रक्रिया से मानों को वापस करने या प्राप्त करने के लिए भी किया जाता है। यह पठनीय और लिखने योग्य दोनों है। हम इसे पढ़ और संशोधित कर सकते हैं।
वापसी
हम जावा प्रोग्राम जैसे मुख्य प्रोग्राम पर नियंत्रण वापस देने के लिए रिटर्न कीवर्ड का उपयोग करेंगे। जब प्रक्रिया RETURN कीवर्ड को खोज लेती है, तो यह निष्पादन से बाहर निकल जाएगा और इसके बाद कोड या स्टेटमेंट को छोड़ देगा।
जावा से संग्रहीत प्रक्रिया को कैसे कॉल करें
हमारे पास जावा में CallableStatement इंटरफ़ेस है, जिसे संग्रहीत प्रक्रिया कहा जाता है। CallableStatement इंटरफ़ेस ऑब्जेक्ट कनेक्शन इंटरफेस की तैयारी () विधि का उपयोग करके बनाया जा सकता है और उसके बाद, हमें जावा प्रोग्राम में संग्रहीत प्रक्रिया को निष्पादित करने के लिए executeQuery () विधि को कॉल करना चाहिए।
इसे लागू करने के लिए जावा प्रोग्राम लिखने से पहले, हमें प्रोग्राम में इसका उपयोग करने के लिए संग्रहीत कार्यविधियाँ बनानी चाहिए।
जावा प्रोग्राम में संग्रहीत प्रक्रियाओं को कॉल करने के लिए निम्नलिखित सिंटैक्स है:
वाक्य - विन्यास | पैरामीटर्स की नहीं |
---|---|
{कॉल PROCEDURE_NAME ()} | कोई इनपुट पैरामीटर और कोई आउटपुट पैरामीटर नहीं |
{कॉल PROCEDURE_NAME (?;?;)} | तीन इनपुट पैरामीटर और कोई आउटपुट पैरामीटर नहीं |
{। = PROCEDURE_NAME को कॉल करें ()} | कोई इनपुट पैरामीटर और एक आउटपुट पैरामीटर (RETURN मान) |
{? = PROCEDURE_NAME (??)} को कॉल करें | दो इनपुट पैरामीटर और एक आउटपुट पैरामीटर (RETURN Value) |
संग्रहीत कार्यविधियाँ बनाने के लिए कदम
# 1) DB सर्वर में प्रक्रिया बनाएँ। यहां हम Oracle DB का उपयोग कर रहे हैं।
# 2) पूरी प्रक्रिया बनाने के लिए सिंटैक्स:
हम जावा कोड में संग्रहीत कार्यविधि भी लिख सकते हैं।
# 3) प्रक्रिया में इसका उपयोग करने के लिए IN और OUT पैरामीटर पास करें।
# 4) AS / IS कीवर्ड का उल्लेख किया जाना चाहिए। यदि हम नई प्रक्रिया में कोई अन्य प्रक्रिया जोड़ रहे हैं, तो IS कीवर्ड का उपयोग करें या यदि प्रक्रिया स्टैंडअलोन है तो AS कीवर्ड का उपयोग करें।
# 5) चरों की घोषणा करना, यह अनिवार्य नहीं है कि हम जो आवश्यकता बना सकते हैं, उसके आधार पर।
# 6) फिर BEGIN कीवर्ड का उपयोग करते हुए प्रक्रिया को BEGIN करें और फिर प्रक्रिया में निष्पादित होने के लिए SQL कथन या क्वेरीज़ लिखें।
# 7) अगला, हम अपवाद भाग में अपवाद को संभाल सकते हैं। इसका उल्लेख करना भी अनिवार्य नहीं है।
# 8) END कीवर्ड और प्रक्रिया के नाम का उल्लेख करके प्रक्रिया को समाप्त करें।
हम ओरेकल में प्रक्रिया बना सकते हैं और इसे एक अद्वितीय नाम के साथ सहेज सकते हैं और जावा प्रोग्राम से उस प्रक्रिया को कॉल कर सकते हैं। हम प्रक्रिया बना सकते हैं और जावा में भी उस प्रक्रिया को कॉल कर सकते हैं।
ओरेकल में एक प्रक्रिया बनाएं, इसे सहेजें, और जावा प्रोग्राम में प्रक्रिया को कॉल करें।
# 1) डेटाबेस सर्वर खोलें। यहाँ हम Oracle DB सर्वर का उपयोग कर रहे हैं।
#दो) प्रोसीजर फ़ोल्डर पर राइट-क्लिक करें और न्यू प्रोसीजर विकल्प पर क्लिक करें।
# 3) यह प्रक्रिया और पैरामीटर विवरण के नाम के लिए पूछेगा।
ध्यान दें: हम प्रक्रिया को लिखते समय पैरामीटर विवरण भी दे सकते हैं।
# 4) उन चरणों का उपयोग करने की प्रक्रिया लिखें, जिनके बारे में हमने पहले ही इस ट्यूटोरियल में चर्चा की है और अद्वितीय नाम के साथ प्रक्रिया को बचाएं।
स्क्रीनशॉट में प्रक्रिया डीबी में आउटपुट प्रदर्शित करेगी। हम इसे जावा प्रोग्राम में भी प्रदर्शित करने के लिए इसे बदल सकते हैं। उसके लिए, हमें OUT मापदंडों का उपयोग करने की आवश्यकता है।
# 5) रन बटन पर क्लिक करके प्रक्रिया चलाएं
# 6) इनपुट मान कॉलम में मान दर्ज करें। यह दिए गए मूल्य के लिए डेटा प्रदर्शित करेगा।
अब तक, हमने देखा है कि डीबी कंसोल में ही प्रक्रिया को कैसे बनाया और निष्पादित किया जाए।
5 साल के अनुभव के लिए एसक्यूएल साक्षात्कार प्रश्न
DB में प्रक्रिया बनाएँ। इसे कॉल करें और जावा कंसोल में डेटा प्रदर्शित करें ।
उपरोक्त चरणों का उपयोग करके निम्नलिखित प्रक्रिया बनाएं और इसे 'DISPLAY_EMPLOYEE_DET Colors' नाम से सहेजें।
जावा संग्रहित प्रक्रिया उदाहरण कार्यक्रम
package com.STH.JDBC; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; public class StoredProcedureExample { public static void main(String() args) throws ClassNotFoundException { Class.forName('oracle.jdbc.driver.OracleDriver'); //Connecting to Oracle DB Try (Connection conn = DriverManager.getConnection('jdbc:oracle:thin:system/pass123@localhost:1521:XE')) { // Creating prepared Statement CallableStatementCallStmt = conn.prepareCall('{call DISPLAY_EMPLOYEE_DETAILS(?,?,?,?)}'); //Passing Input Parameter CallStmt.setInt(1,1001); //Retrieving the Output Parameters values CallStmt.registerOutParameter(2, java.sql.Types.VARCHAR); CallStmt.registerOutParameter(3, java.sql.Types.VARCHAR); CallStmt.registerOutParameter(4, java.sql.Types.VARCHAR); //Calling the execute to execute the procedure and retrieve the data CallStmt.execute(); System.out.println('First Name: '+ CallStmt.getString(2)+'
Last Name: '+ CallStmt.getString(3) + '
Email: ' + CallStmt.getString(4)); }catch (SQLException e) { e.printStackTrace(); } } }
OUTPUT:
स्पष्टीकरण:
उपरोक्त कार्यक्रम में, हमने जो किया है, हमने एक प्रक्रिया बनाई है और इसे Oracle DB में सहेजा है। फिर CallableStatement का उपयोग करके उस प्रक्रिया को बुलाया और जावा कंसोल में डेटा प्रदर्शित किया।
- प्रक्रिया बनाएं और इसे Oracle DB में सहेजें।
- जावा प्रोग्राम में, DB कनेक्शन खोलें और कनेक्शन और CallableStatement ऑब्जेक्ट्स का उपयोग करके तैयार करें कॉल विधि।
- सेटएक्सएक्सएक्स विधि का उपयोग करके इनपुट पैरामीटर मान को पास करें।
- RegisterOutParameter विधि का उपयोग करके आउटपुट पैरामीटर मान प्राप्त करें। इस पद्धति में, हमें पैरामीटर इंडेक्स मान और डेटा प्रकार पैरामीटर को पास करना चाहिए। यह पैरामीटर इंडेक्स में मानों को संग्रहीत करेगा।
- गेटएक्सएक्सएक्स तरीकों का उपयोग करके, हम डेटा को पुनः प्राप्त कर सकते हैं और इसे जावा कंसोल में प्रदर्शित कर सकते हैं।
प्रक्रिया बनाएं और इसे जावा प्रोग्राम में ही निष्पादित करें।
जावा प्रोग्राम
package com.STH.JDBC; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; import java.sql.Statement; public class StoredProcedureExample1 { public static void main(String() args) throws ClassNotFoundException { String Stored_Procedure = 'CREATE OR REPLACE PROCEDURE UPD_EMPLOYEE_DETAILS
' +'(
' + ' PARAM1 IN NUMBER,
' + ' PARAM2 IN NUMBER
'+ ') IS
'+ ' BEGIN
'+ 'UPDATE EMPLOYEE_DETAILS SET EMPNUM= PARAM2 WHERE EMPNUM = PARAM1;
'+ 'COMMIT;
'+ 'END UPD_EMPLOYEE_DETAILS;
'; Class.forName('oracle.jdbc.driver.OracleDriver'); //Connecting to Oracle DB try(Connection conn = DriverManager.getConnection('jdbc:oracle:thin:system/pass123@localhost:1521:XE')) {// Creating prepared Statement Statement stmt = conn.createStatement(); CallableStatementCallStmt = conn.prepareCall('{call UPD_EMPLOYEE_DETAILS(?,?)}'); stmt.execute(Stored_Procedure); //Setting the values to pass the procedure CallStmt.setInt(1,1010); CallStmt.setInt(2, 10010); //Calling executeUpdate method to update the values using Procedure CallStmt.executeUpdate(); System.out.println(' Successfully Updated ' ); } catch (SQLException e) { e.printStackTrace(); } } }
OUTPUT:
कार्यक्रम के निष्पादन से पहले Employee_details तालिका में डेटा:
कार्यक्रम के निष्पादन के बाद Employee_details तालिका में डेटा:
स्पष्टीकरण:
उपरोक्त कार्यक्रम में, हम एक स्ट्रिंग के रूप में प्रक्रिया कोड संग्रहीत करते हैं।
String Stored_Procedure = 'CREATE OR REPLACE PROCEDURE UPD_EMPLOYEE_DETAILS
' +'(
' +' PARAM1 IN NUMBER,
' +' PARAM2 IN NUMBER
'+ ') IS
'+' BEGIN
'+'UPDATE EMPLOYEE_DETAILS SET EMPNUM= PARAM2 WHERE EMPNUM = PARAM1;
'+'COMMIT;
'+'END UPD_EMPLOYEE_DETAILS;
';
- ओरेकल डीबी कनेक्शन खोलें और कनेक्शन ऑब्जेक्ट का उपयोग करके स्टेटमेंट ऑब्जेक्ट बनाएं।
- कथन ऑब्जेक्ट का उपयोग करके createStatement विधि को कॉल करें, क्योंकि हम जावा कोड में प्रक्रिया बना रहे हैं।
- सिंटैक्स का उपयोग करके प्रक्रिया को कॉल करें {कॉल UPD_EMPLOYEE_DET Colors (?,?) CallableStatement की विधि को तैयार करने के लिए।
- चूंकि हम जावा कोड में प्रक्रिया बना रहे हैं, इसलिए हमें उस 'कोड कोड बनाएँ' को निष्पादित करना होगा।
- उस प्रक्रिया को निष्पादित करने के लिए, स्टेटमेंट ऑब्जेक्ट का उपयोग करके निष्पादित विधि को कॉल करें ' stmt.execute (Stored_Procedure) ”। यह DB में अस्थायी रूप से प्रक्रिया का निर्माण करेगा।
- प्रक्रिया का दायरा कार्यक्रम के निष्पादन का अंत है। उसके बाद, यह उपलब्ध नहीं होगा। SetXXX विधियों का उपयोग करके, Employee_Details तालिका में अपडेट करने के लिए मान सेट करें।
- CallableStatement ऑब्जेक्ट का उपयोग करके निष्पादित करें विधि को कॉल करें। यह विधि Empoyee_Details कथा में मानों को अपडेट करेगी।
- Employee_details तालिका की जाँच करें कि क्या डेटा ठीक से अद्यतन किया गया है।
याद दिलाने के संकेत:
- बैच प्रसंस्करण प्रदर्शन में सुधार करता है और डेटा स्थिरता बनाए रखता है।
- एक लेनदेन में कई एसक्यूएल बयानों को निष्पादित करना बैच प्रसंस्करण के रूप में जाना जाता है।
- संग्रहित प्रक्रिया व्यावसायिक तर्क निष्पादित करने के लिए उपयोग किए जाने वाले एसक्यूएल बयानों का ब्लॉक है।
- हम इनपुट पैरामीटर को प्रक्रिया में और आउटपुट पैरामीटर के लिए OUT कीवर्ड का उपयोग करके पास कर सकते हैं।
- हम स्वयं DB सर्वर में एक प्रक्रिया बना सकते हैं और अस्थायी रूप से जावा कोड का भी उपयोग कर सकते हैं।
बार बार पूछे जाने वाले प्रश्न
Q # 1) JDBC में बैच प्रोसेसिंग करने के लिए किस इंटरफ़ेस का उपयोग किया जाना चाहिए?
उत्तर: जावा पैकेज में स्टेटमेंट और रेडीस्टेडमेंट इंटरफेस होते हैं, जो बैच प्रोसेसिंग करने के तरीके प्रदान करते हैं।
Q # 2) JDBC में बैच अपडेट कैसे काम करते हैं?
उत्तर: एक JDBC बैच अपडेट, एक-एक करके अद्यतनों को भेजने के बजाय समूहीकृत और डेटाबेस में भेजे गए अद्यतनों का एक समूह है। इस प्रकार, यह डेटाबेस में नेटवर्क ट्रैफ़िक को कम करता है।
Q # 3) बैच प्रोसेसिंग प्रदर्शन को कैसे बढ़ाती है?
उत्तर: बैच प्रसंस्करण डेटा को एक बार में भेजने के बजाय एक समय में (केवल 1 गोल यात्रा) डेटाबेस को भेजता है, और डेटाबेस समानांतर में कुछ बयानों को निष्पादित करने में सक्षम हो सकता है। इस तरह, यह एप्लिकेशन के प्रदर्शन को बढ़ा रहा है और समय की बचत कर रहा है।
Q # 4) जेडीबीसी में संग्रहीत प्रक्रियाओं में कौन से पैरामीटर स्वीकार किए जाते हैं?
उत्तर: तीन प्रकार के पैरामीटर हैं- IN, OUT, और INOUT पैरामीटर। इनपुट मान प्राप्त करने के लिए IN पैरामीटर है। आउटपुट मान प्राप्त करने के लिए OUT पैरामीटर है। इनपुट और आउटपुट दोनों के लिए INOUT पैरामीटर का उपयोग किया जाता है।
Q # 5) JDBC में संग्रहीत कार्यविधि को निष्पादित करने के लिए कौन से तरीके उपलब्ध हैं?
उत्तर: CallableStatement Interface का उपयोग करके, हम प्रक्रिया को कॉल कर सकते हैं। CallableStatement इंटरफ़ेस संग्रहीत प्रक्रियाओं को निष्पादित करने के लिए तीन तरीके प्रदान करता है।
तीन विधियाँ हैं:
- निष्पादित करें (): यदि प्रक्रिया कोई रिटर्न मान वापस नहीं करती है तो इस विधि का उपयोग करें।
- क्वेरी को निष्पादित करें(): यदि प्रक्रिया केवल एक परिणाम देती है तो इस विधि का उपयोग करें।
- निष्पादित(): इस विधि का उपयोग करें यदि प्रक्रिया कई परिणाम देता है या एक अज्ञात संख्या में परिणाम देता है।
निष्कर्ष
हमने इस ट्यूटोरियल में बैच प्रोसेसिंग और स्टोर की गई प्रक्रियाओं को कवर किया है। आधुनिक दुनिया में, उच्च प्रदर्शन, डेटा स्थिरता और पुन: प्रयोज्य किसी भी लोकप्रिय अनुप्रयोग के लिए buzzwords हैं। बैच प्रसंस्करण और संग्रहीत प्रक्रिया दोनों इन सुविधाओं को लागू करने में बहुत महत्वपूर्ण भूमिका निभाते हैं। हर सॉफ्टवेयर इंजीनियर के लिए इनका ज्ञान अनिवार्य है।
अनुशंसित पाठ
- Java JDBC ट्यूटोरियल: JDBC (जावा डेटाबेस कनेक्टिविटी) क्या है
- जावा JDBC कनेक्शन ट्यूटोरियल प्रोग्रामिंग उदाहरण के साथ
- उदाहरण के साथ जावा जेडीबीसी लेनदेन प्रबंधन
- JDBC रिजल्टसेट: डेटा को वापस लेने के लिए जावा रिजल्टसेट का उपयोग कैसे करें
- JDBC अपवाद हैंडलिंग - SQL अपवाद को कैसे हैंडल करें
- JDBC DriverManager, JDBC रेडीस्टेडमेंट और स्टेटमेंट
- जावा ट्यूटोरियल फॉर बिगिनर्स: 100+ हैंड्स-ऑन जावा वीडियो ट्यूटोरियल