1. 관리 트랜잭션
(1) 트랜잭션을 엽니다. setAutoCommit
이 메소드를 호출하여 매개변수를 false로 설정합니다. 즉, 트랜잭션을 엽니다.
SQL을 실행하기 전에 트랜잭션을 시작하세요.
(2) 커밋 트랜잭션: commit()
모든 SQL이 커밋 트랜잭션 실행을 완료했을 때.
(3) 트랜잭션 롤백: 롤백()
캐치에서 트랜잭션을 롤백합니다.
2. 예
public static void main(String[] args) { Connection conn = null; PreparedStatement pstmt1 = null; PreparedStatement pstmt2 = null; try { //1.获取连接 conn = JDBCUtils.getConnection(); //开启事务 conn.setAutoCommit(false); //2.定义sql //2.1 张三 - 500 String sql1 = "update account set balance = balance - ? where id = ?"; //2.2 李四 + 500 String sql2 = "update account set balance = balance + ? where id = ?"; //3.获取执行sql对象 pstmt1 = conn.prepareStatement(sql1); pstmt2 = conn.prepareStatement(sql2); //4. 设置参数 pstmt1.setDouble(1,500); pstmt1.setInt(2,1); pstmt2.setDouble(1,500); pstmt2.setInt(2,2); //5.执行sql pstmt1.executeUpdate(); // 手动制造异常 int i = 3/0; pstmt2.executeUpdate(); //提交事务 conn.commit(); } catch (Exception e) { //事务回滚 try { if(conn != null) { conn.rollback(); } } catch (SQLException e1) { e1.printStackTrace(); } e.printStackTrace(); }finally { //关闭资源 JDBCUtils.close(pstmt1,conn); JDBCUtils.close(pstmt2,null); }
위 내용은 Connection을 사용하여 Java에서 트랜잭션을 관리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!