Savepoint इंटरफ़ेस आपको अतिरिक्त ट्रांजैक्शनल नियंत्रण देता है। अधिकांश आधुनिक DBMS, Oracle के PL/SQL जैसे अपने वातावरण में सेवपॉइंट का समर्थन करते हैं।
जब आप एक सेवपॉइंट सेट करते हैं तो आप ट्रांजैक्शन के भीतर एक तार्किक रोलबैक बिंदु परिभाषित करते हैं। यदि सेवपॉइंट के बाद कोई त्रुटि होती है, तो आप रोलबैक मेथड का उपयोग करके या तो सभी परिवर्तनों को पूर्ववत कर सकते हैं या केवल सेवपॉइंट के बाद किए गए परिवर्तनों को।
Connection ऑब्जेक्ट में सेवपॉइंट प्रबंधित करने में मदद करने वाले दो नए मेथड हैं:
setSavepoint(String savepointName): एक नया सेवपॉइंट परिभाषित करता है। यह एक Savepoint ऑब्जेक्ट भी लौटाता है।
releaseSavepoint(Savepoint savepointName): एक Savepoint को हटाता है। ध्यान दें कि इसे पैरामीटर के रूप में Savepoint ऑब्जेक्ट की आवश्यकता होती है। यह ऑब्जेक्ट आमतौर पर setSavepoint() मेथड द्वारा उत्पन्न एक सेवपॉइंट होता है।
एक rollback (String savepointName) मेथड है, जो काम को निर्दिष्ट सेवपॉइंट पर वापस लाता है।
उदाहरण
try { // मान लें एक वैध कनेक्शन ऑब्जेक्ट conn conn.setAutoCommit(false); Statement stmt = conn.createStatement(); // एक Savepoint सेट करें Savepoint savepoint1 = conn.setSavepoint("Savepoint1"); String SQL = "INSERT INTO Employees " + "VALUES (106, 20, 'Rita', 'Tez')"; stmt.executeUpdate(SQL); // एक खराब SQL स्टेटमेंट जमा करें जो टूट जाता है String SQL = "INSERTED IN Employees " + "VALUES (107, 22, 'Sita', 'Tez')"; stmt.executeUpdate(SQL); // यदि कोई त्रुटि नहीं है, तो परिवर्तन कमिट करें। conn.commit(); } catch(SQLException se){ // यदि कोई त्रुटि है। conn.rollback(savepoint1); }