อินเทอร์เฟซ 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);
}