[java] Apache Derby를 사용하여 데이터베이스에서 트랜잭션 롤백을 수행하는 방법에 대해 알려주세요.
먼저, Derby 데이터베이스에 연결하는 코드를 작성해야 합니다. 다음 코드를 사용하여 데이터베이스에 연결합니다.
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DerbyRollbackExample {
public static void main(String[] args) {
String url = "jdbc:derby://localhost:1527/yourDBName";
Connection conn = null;
try {
conn = DriverManager.getConnection(url);
conn.setAutoCommit(false); // 자동 커밋 비활성화
// 트랜잭션 시작
// 데이터 조작 및 업데이트
// 롤백하는 경우
conn.rollback();
// 커밋하는 경우
conn.commit();
} catch (SQLException e) {
e.printStackTrace();
try {
// 롤백 작업 중 예외가 발생한 경우 롤백 수행
if(conn != null) {
conn.rollback();
}
} catch (SQLException ex) {
ex.printStackTrace();
}
} finally {
try {
if(conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
위의 코드에서 url
을 자신의 데이터베이스 URL로 변경해야 합니다.
위의 예제에서 conn.setAutoCommit(false)
를 사용하여 자동 커밋을 비활성화하고, 롤백 및 커밋 작업을 직접 수행합니다. 롤백은 conn.rollback()
으로 수행되며, 커밋은 conn.commit()
으로 수행됩니다. 예외가 발생한 경우 롤백 작업을 수행하는 것이 좋습니다. 이를 위해 롤백 작업은 try-catch
블록 내에서 수행되어야 합니다.
트랜잭션을 롤백하면 이전 상태로 데이터가 복원됩니다. 따라서 트랜잭션 내에서 데이터 조작 및 업데이트 작업을 수행한 후 롤백을 수행하면 이전 데이터 상태로 롤백됩니다.
자바에서 Derby 데이터베이스의 트랜잭션 롤백을 수행하는 방법에 대해 알려드렸습니다. 추가적인 도움이 필요하거나 더 자세한 내용을 원하신다면 Apache Derby 공식 문서를 참조하시기 바랍니다.