यदि आप एक डेटाबेस प्रतिबद्ध करते हैं, तो यह उस विशेष बिंदु तक किए गए सभी परिवर्तनों को सहेजता है।
आप प्रतिबद्ध() . का उपयोग करके एक डेटाबेस प्रतिबद्ध कर सकते हैं तरीका। जब भी कोई समस्या आती है तो आप रोलबैक () . का उपयोग करके डेटाबेस को इस बिंदु पर वापस ला सकते हैं तरीका। डिफ़ॉल्ट रूप से, कुछ डेटाबेस डेटाबेस को स्वचालित रूप से प्रतिबद्ध करते हैं। लेकिन, लेन-देन का प्रबंधन करते समय आपको डेटाबेस को मैन्युअल रूप से करने की आवश्यकता होती है।
इस परिदृश्य में आप setAutoCommit() विधि का उपयोग कर सकते हैं। यह विधि कनेक्शन इंटरफ़ेस से संबंधित है और, यह एक बूलियन मान को स्वीकार करती है।
यदि आप इस पद्धति के लिए सही पास करते हैं तो यह डेटाबेस की ऑटो-प्रतिबद्ध सुविधा को चालू करता है और यदि आप इस विधि को गलत पास करते हैं तो यह डेटाबेस की स्वत:-प्रतिबद्ध सुविधा को बंद कर देता है।
आप इस पद्धति का उपयोग करके डेटाबेस की ऑटो कमिट सुविधा को इस प्रकार चालू कर सकते हैं:
Con.setAutoCommit(false);
उदाहरण
निम्नलिखित प्रोग्राम बैच प्रोसेसिंग का उपयोग करके इस तालिका में डेटा सम्मिलित करता है। यहां हम ऑटो कमिट को गलत सेट करते हैं, एक बैच में आवश्यक स्टेटमेंट जोड़ते हैं, बैच को निष्पादित करते हैं और फिर डेटाबेस को अपने दम पर प्रतिबद्ध करते हैं।
आयात करें jdbc:mysql://localhost/sampleDB"; कनेक्शन कॉन =DriverManager.getConnection (mysqlUrl, "रूट", "पासवर्ड"); System.out.println ("कनेक्शन स्थापित ......"); // टेबल डिस्पैच बनाएं (Product_Name VARCHAR (255), Name_Of_Customer VARCHAR (255), Month_Of_Dispatch VARCHAR (255), प्राइस INT, लोकेशन VARCHAR (255)); // एक स्टेटमेंट ऑब्जेक्ट बनाना स्टेटमेंट stmt =con.createStatement (); // ऑटो-प्रतिबद्ध झूठी con.setAutoCommit (झूठी) सेट करना; // रिकॉर्ड डालने के लिए बयान स्ट्रिंग डालने 1 ="डिस्पैच में डालें (उत्पाद_नाम, नाम_ऑफ_ ग्राहक," + "माह_ऑफ_डिस्पैच, मूल्य, स्थान) मान" + "('कीबोर्ड', 'अमिथ', 'जनवरी', 1000, 'हैदराबाद') "; स्ट्रिंग इन्सर्ट 2 ="डिस्पैच में डालें (उत्पाद_नाम, नाम_ऑफ_ग्राहक," + "माह_ऑफ_डिस्पैच, मूल्य, स्थान) मान" + "('इयरफ़ोन', 'सुमिथ', 'मार्च', 500, 'विशाखापत्तनम')"; स्ट्रिंग इन्सर्ट 3 ="डिस्पैच में डालें (उत्पाद_नाम, नाम_ऑफ_ग्राहक," + "माह_ऑफ_डिस्पैच, मूल्य, स्थान) मान" + "('माउस', 'सुधा', 'सितंबर', 200, 'विजयवाड़ा')"; // बैच में स्टेटमेंट जोड़ना stmt.addBatch(insert1); stmt.addBatch(insert2); stmt.addBatch(insert3); // बैच निष्पादित करना stmt.executeBatch (); // परिवर्तनों को सहेजना con.commit (); System.out.println ("रिकॉर्ड डाला गया ..."); }}पूर्व>आउटपुट
कनेक्शन स्थापित...रिकॉर्ड डाले गए......