อินเทอร์เฟซ Savepoint ช่วยให้คุณควบคุมธุรกรรมเพิ่มเติมได้ DBMS ที่ทันสมัยส่วนใหญ่ รองรับการบันทึกคะแนนภายในสภาพแวดล้อม เช่น PL/SQL ของ Oracle
เมื่อคุณตั้งค่าจุดบันทึก คุณจะกำหนดจุดย้อนกลับแบบลอจิคัลภายในธุรกรรม หากเกิดข้อผิดพลาดหลังจากจุดบันทึก คุณสามารถใช้วิธีการย้อนกลับเพื่อเลิกทำการเปลี่ยนแปลงทั้งหมดหรือเฉพาะการเปลี่ยนแปลงที่ทำหลังจากจุดบันทึกเท่านั้น
วัตถุการเชื่อมต่อมีสองวิธีใหม่ที่ช่วยให้คุณจัดการบันทึกคะแนน -
-
setSavepoint(String savepointName): กำหนดจุดบันทึกใหม่ นอกจากนี้ยังส่งคืนวัตถุ Savepoint
-
releaseSavepoint(Savepoint savepointName): ลบ Savepoint ขอให้สังเกตว่ามันต้องมีวัตถุ Savepoint เป็นพารามิเตอร์ วัตถุนี้มักจะเป็นจุดบันทึกที่สร้างโดยเมธอด setSavepoint()
มี ย้อนกลับ (String savepointName) เมธอดซึ่งย้อนกลับการทำงานไปยังจุดบันทึกที่ระบุ
ตัวอย่าง
try { //Assume a valid connection object conn conn.setAutoCommit(false); Statement stmt = conn.createStatement(); //set a Savepoint Savepoint savepoint1 = conn.setSavepoint("Savepoint1"); String SQL = "INSERT INTO Employees " + "VALUES (106, 20, 'Rita', 'Tez')"; stmt.executeUpdate(SQL); //Submit a malformed SQL statement that breaks String SQL = "INSERTED IN Employees " + "VALUES (107, 22, 'Sita', 'Tez')"; stmt.executeUpdate(SQL); // If there is no error, commit the changes. conn.commit(); } catch(SQLException se){ // If there is any error. conn.rollback(savepoint1); }