Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

JDBC의 세이브 포인트는 무엇입니까? 설명하다?

<시간/>

Savepoint 인터페이스는 추가적인 트랜잭션 제어를 제공합니다. 대부분의 최신 DBMS는 Oracle의 PL/SQL과 같은 환경 내에서 세이브 포인트를 지원합니다.

저장 지점을 설정할 때 트랜잭션 내에서 논리적 롤백 지점을 정의합니다. 저장 지점 이후에 오류가 발생하면 롤백 방법을 사용하여 모든 변경 사항을 취소하거나 저장 지점 이후에 이루어진 변경 사항만 취소할 수 있습니다.

연결 개체에는 저장 지점을 관리하는 데 도움이 되는 두 가지 새로운 방법이 있습니다.

  • setSavepoint(문자열 savepointName): 새 저장 지점을 정의합니다. 또한 Savepoint 개체를 반환합니다.

  • releaseSavepoint(Savepoint savepointName): 저장점을 삭제합니다. 매개변수로 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);
}