INSERT या, UPDATE या, DELETE कमांड (जो अपडेट काउंट वैल्यू उत्पन्न करते हैं) के एक सेट को समूहीकृत करना और उन्हें एक बार में निष्पादित करना इस तंत्र को बैच अपडेट के रूप में जाना जाता है।
यदि आप बैच अपडेट का उपयोग करके पैरामीटर के साथ क्वायर पास करते हैं तो इसे पैरामीटरयुक्त बैच अपडेट के रूप में जाना जाता है।
आम तौर पर, बैच अपडेट करने के लिए आपको addBatch() . का उपयोग करके सभी आवश्यक विवरण जोड़ने होंगे विधि और उन्हें executeBatch() . का उपयोग करके निष्पादित करें विधि के रूप में:
//एक स्टेटमेंट ऑब्जेक्ट बनाना stmt =con.createStatement();//auto-commit falsecon.setAutoCommit(false);// स्टेटमेंट्स को बैचस्टमट में जोड़ना। 'अमिथ', 'जनवरी', 1000, 'हैदराबाद')");stmt.addBatch("INSERT INTO Sales Values ('ईयरफ़ोन', 'सुमिथ', 'मार्च', 500, 'विशाखापत्तनम')");stmt. addBatch ("बिक्री मूल्यों में डालें ('माउस', 'सुधा', 'सितंबर', 200, 'विजयवाड़ा')");//batchstmt.executeBatch();निष्पादित करना
यदि आप यहां उपरोक्त कोड का पालन करते हैं, तो हम स्टेटमेंट के निश्चित भाग को बार-बार बैच में जोड़ रहे हैं, इसके बजाय, आप एक पैरामीटरयुक्त बैच अपडेट कर सकते हैं जहां आप एक तैयार स्टेटमेंट का उपयोग करते हैं और प्लेस होल्डर के साथ एक क्वेरी बनाते हैं और वैल्यू पास करते हैं इन प्लेस होल्डर्स के लिए सेटर विधियों का उपयोग करना।
मान जोड़ते समय आपको क्वेरी के मानों के प्रत्येक सेट को बैच में जोड़ना होगा और फिर उन्हें एक ही बार में निष्पादित करना होगा।
पैरामीटरयुक्त बैच अपडेट बनाना
पैरामीटरयुक्त बैच अपडेट बनाने के लिए, आपको प्लेसहोल्डर्स के साथ वैल्यू डालने, अपडेट करने या डिलीट करने के लिए एक तैयार स्टेटमेंट बनाना होगा।
प्लेसहोल्डर्स के लिए मान सेट करें, setXXX () स्टेटमेंट का उपयोग करके पैरामीटर। Addbatch() विधि का उपयोग करके बैच में मानों के प्रत्येक सेट को जोड़ें, अंत में एक्ज़ीक्यूटबैच विधि का उपयोग करके बैच को निष्पादित करें।
नोट: बैच में स्टेटमेंट जोड़ने से पहले आपको con.setAutoCommit(false) का उपयोग करके ऑटो कमिट को बंद करना होगा और, बैच को निष्पादित करने के बाद आपको con.commit() . का उपयोग करके परिवर्तनों को सहेजना होगा विधि।
उदाहरण
मान लें कि हमने निम्नलिखित विवरण के साथ डेटाबेस में Sales नाम की एक तालिका बनाई है:
<पूर्व>+---------------------+--------------+----------+---- -+-----------+----------+| फील्ड | प्रकार | शून्य | कुंजी | डिफ़ॉल्ट | अतिरिक्त |+-------------------+--------------+----------+----- +------------+----------+| Product_Name | वर्चर (255) | हाँ | | नल | || Name_Of_Customer | वर्चर (255) | हाँ | | नल | || मंथ_ऑफ_डिस्पैच | वर्चर (255) | हाँ | | नल | || कीमत | इंट(11) | हाँ | | नल | || स्थान | वर्चर (255) | हाँ | | नल | |+---------------------+--------------+----------+-----+ --------+----------+यह उदाहरण पैरामीटरयुक्त बैच अपडेट का उपयोग करके उपरोक्त तालिका में कथनों के एक सेट को सम्मिलित करने का प्रयास करता है।
आयात करें कनेक्शन प्राप्त करना स्ट्रिंग mysqlUrl ="jdbc:mysql://localhost/testDB"; कनेक्शन कॉन =DriverManager.getConnection (mysqlUrl, "रूट", "पासवर्ड"); System.out.println ("कनेक्शन स्थापित ......"); // एक स्टेटमेंट ऑब्जेक्ट बनाना स्टेटमेंट stmt =con.createStatement (); // ऑटो-प्रतिबद्ध झूठी con.setAutoCommit (झूठी) सेट करना; readyStatement pstmt =con.prepareStatement ("बिक्री मूल्यों में सम्मिलित करें (?,?,?,?,?)"); pstmt.setString(1, "कीबोर्ड"); pstmt.setString(2, "अमिथ"); pstmt.setString(3, "जनवरी"); pstmt.setInt(4, 1000); pstmt.setString(5, "हैदराबाद"); pstmt.addBatch (); pstmt.setString(1, "इयरफ़ोन"); pstmt.setString(2, "सुमिथ"); pstmt.setString(3, "मार्च"); pstmt.setInt(4, 500); pstmt.setString(5, "विशाखापत्तनम"); pstmt.addBatch (); pstmt.setString(1, "माउस"); pstmt.setString(2, "सुधा"); pstmt.setString(3, "सितंबर"); pstmt.setInt(4, 500); pstmt.setString(5, "विशाखापत्तनम"); pstmt.addBatch (); // बैच निष्पादित करना stmt.executeBatch (); // परिवर्तनों को सहेजना con.commit (); System.out.println ("रिकॉर्ड डाला गया ..."); }}पूर्व>आउटपुट
कनेक्शन स्थापित हो गया...रिकॉर्ड डाले गए......