JDBC控制事务

380 阅读1分钟

1.事务:一个包含多个步骤的业务操作。如果这个业务操作被事务管理,则多个步骤要么同时成功,要么同时失败。

2.操作:

1.开启事务

2.提交事务

3.回滚事务

3.使用Connection 对象来管理事务

*开启事务:setAutoCommit(boolean autoCommit):调用该方法设置参数为False,即开启事务

*提交事务:commit()

*回滚事务:rollback()

public class JDBCDemo6 {
    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 liu-500
            String sql1="update count set money =money - ? where name= ?";

//            2.2 lin+500
            String sql2= "update count set money =money + ? where name= ?";
//                3.获取执行sql对象
            pstmt1=conn.prepareStatement(sql1);
            pstmt2=conn.prepareStatement(sql2);
//            4.设置参数
            pstmt1.setDouble(1,500);
            pstmt1.setString(2,"lin");
            pstmt2.setDouble(1,500);
            pstmt2.setString(2,"liu");
//            5.执行
            pstmt1.executeUpdate();
            
            pstmt2.executeUpdate();
            conn.commit();
        } catch (SQLException e) {
            if (conn!=null){
                    conn.rollback();
                }
            e.printStackTrace();
        }finally {
            JDBCUTils.close(pstmt1,conn);
            JDBCUTils.close(pstmt2,null);
        }
    }
}