## 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, 널 ); } } }