JDBC (세) ---- JDBC 제어 트랜잭션

## JDBC 트랜잭션 제어

1 트랜잭션 다음을 포함하는 동작 단계 복수. 이 작업은 트랜잭션 관리 사무원 인 경우, 동시에이 여러 단계가 성공하거나 동시에 실패 중 하나.

2. 작업 :

  1, 개방 문제

  2, 트랜잭션을 커밋

  3, 롤 트랜잭션을

3, 연결 객체를 사용하여 업무를 관리 할 수

  * 오픈 거래 :에서는 setAutoCommit (부울 자동 커밋)를 사용하여 매개 변수를 false로 설정하려면이 방법, 트랜잭션 열려

    * 트랜잭션에서 SQL을 실행하기 전에

  * 트랜잭션을 커밋 커밋 ()

    * 모두가 트랜잭션을 커밋 SQL 실행하는 경우

  * 롤 트랜잭션을 : 롤백 ()

    * 롤 캐치에 트랜잭션을

패키지 JDBC.demo04을; 

수입 JDBC.Login.JDBCUtils; 

수입 java.sql.Connection의;
수입 java.sql.PreparedStatement의;
수입 은 java.sql.SQLException; 

/ ** 
 * JDBC事务管理机制
 * / 
공용  클래스 JDBCCommit { 

    공공  정적  무효 메인 (문자열 []에 args) { 
        접속 CONN = ; 
        PreparedStatement의 pstmt1 = ; 
        PreparedStatement의 pstmt2 = ;
        시도 { 
            CONN =JDBCUtils.getConn (); 
            문자열 SQL1 = "업데이트 계정 설정 카운트 = 카운트? -? 어디 ID =" ; 
            문자열 SQL2 = "업데이트 계정 설정 카운트 = 카운트 +? 어디 ID =?" ; 
            conn.setAutoCommit ( 거짓 ); 
            pstmt1 = conn.prepareStatement (SQL1); 
            pstmt2 = conn.prepareStatement (SQL2); 
            pstmt1.setInt ( 1, 10000 ); 
            pstmt1.setInt ( 2, 1 ); 
            pstmt2.setInt ( 1, 10000 ); 
            pstmt2.setInt ( 2,2 );
            pstmt1.executeUpdate (); 
             );int로 난 1 / = 0 ; 
            pstmt2.executeUpdate (); 
            conn.commit (); 
        } 캐치 (예외 전자) {
             시도 {
                 경우 (CONN =! 널 (null) {) 
                    conn.rollback (); 
                } 
            } 캐치 (예외 : SQLException 예) { 
                ex.printStackTrace (); 
            } 
            e.printStackTrace (); 
        } 마지막 { 
            JDBCUtils.colse (CONN, pstmt1, 
            JDBCUtils.colse (  , pstmt2,  ); 
        } 
    } 
}

 

추천

출처www.cnblogs.com/21seu-ftj/p/12499288.html