यदि आप डेटाबेस को कमिट करते हैं, तो यह उस विशेष बिंदु तक किए गए सभी परिवर्तनों को सहेजता है।
आप commit() मेथड का उपयोग करके डेटाबेस को कमिट कर सकते हैं। जब भी कोई समस्या होती है, तो आप rollback() मेथड का उपयोग करके डेटाबेस को इस बिंदु पर वापस ला सकते हैं। डिफ़ॉल्ट रूप से, कुछ डेटाबेस स्वचालित रूप से डेटाबेस को कमिट करते हैं। लेकिन, ट्रांजैक्शन प्रबंधित करते समय आपको मैन्युअल रूप से डेटाबेस कमिट करने की आवश्यकता होती है।
इस परिदृश्य में आप setAutoCommit() मेथड का उपयोग कर सकते हैं। यह मेथड Connection इंटरफ़ेस से संबंधित है और, यह एक बूलियन मान स्वीकार करता है।
यदि आप इस मेथड को true पास करते हैं तो यह डेटाबेस की ऑटो-कमिट सुविधा को चालू करता है और, यदि आप false पास करते हैं तो यह डेटाबेस की ऑटो-कमिट सुविधा को बंद कर देता है।
आप इस मेथड का उपयोग करके डेटाबेस की ऑटो-कमिट सुविधा को बंद कर सकते हैं:
Con.setAutoCommit(false);
उदाहरण
निम्नलिखित प्रोग्राम बैच प्रोसेसिंग का उपयोग करके इस टेबल में डेटा डालता है। यहां हम ऑटो-कमिट को false सेट करते हैं, आवश्यक स्टेटमेंट को बैच में जोड़ते हैं, बैच निष्पादित करते हैं और फिर स्वयं डेटाबेस कमिट करते हैं।
import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; public class BatchProcessing_Statement { public static void main(String args[])throws Exception { // कनेक्शन प्राप्त करना String mysqlUrl = "jdbc:mysql://localhost/sampleDB"; Connection con = DriverManager.getConnection(mysqlUrl, "root", "password"); System.out.println("Connection established......"); //CREATE TABLE Dispatches( Product_Name VARCHAR(255), Name_Of_Customer VARCHAR(255), Month_Of_Dispatch VARCHAR(255), Price INT, Location VARCHAR(255)); // Statement ऑब्जेक्ट बनाना Statement stmt = con.createStatement(); // ऑटो-कमिट false सेट करना con.setAutoCommit(false); // रिकॉर्ड डालने के लिए स्टेटमेंट String insert1 = "INSERT INTO Dispatches( Product_Name , Name_Of_Customer , " + "Month_Of_Dispatch , Price, Location) VALUES " + "('KeyBoard', 'Amith', 'January', 1000, 'hyderabad')"; String insert2 = "INSERT INTO Dispatches( Product_Name , Name_Of_Customer , " + "Month_Of_Dispatch , Price, Location) VALUES " + "('Earphones', 'SUMITH', 'March', 500, 'Vishakhapatnam')"; String insert3 = "INSERT INTO Dispatches( Product_Name , Name_Of_Customer , " + "Month_Of_Dispatch , Price, Location) VALUES " + "('Mouse', 'Sudha', 'September', 200, 'Vijayawada')"; // स्टेटमेंट को बैच में जोड़ना stmt.addBatch(insert1); stmt.addBatch(insert2); stmt.addBatch(insert3); // बैच निष्पादित करना stmt.executeBatch(); // परिवर्तन सहेजना con.commit(); System.out.println("Records inserted......"); } }आउटपुट
Connection established...... Records inserted......