[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 공식 문서를 참조하시기 바랍니다.