JDBC事务

时间:2021-08-17
本文章向大家介绍JDBC事务,主要包括JDBC事务使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

JDBC事务

事务:

要么都成功

要么都失败

ACID标准:

  • 原子性(Atomicity)
  • 一致性(Consistency)
  • 隔离性(Isolation)
  • 持久性(Durability)
开启事务	setAutoCommit(false);
事务提交	commit();
事务回滚	rooback();
关闭事务
start transaction ;#开启事务

update account set money = money-100 where name = 'A';
update account set money = money+100 where name = 'B';

rollback;#事务回滚
commit; #提交事务

public class TestTransaction {

    @Test
    public void test(){
        Connection conn = null;
        PreparedStatement pst = null;
        ResultSet rs = null;
        try {
        //  获取数据库连接
            conn = jdbcUtils.getConnection();
        //  通知数据库开启事务,false 开启
            conn.setAutoCommit(false);
        //  编辑SQL语句
            String sql1  = "update account set money = money-100 where name = 'A';";
        //  预编译第一条SQL 执行
            conn.prepareStatement(sql1).executeUpdate();

        //    制造错误
            int i=1/0;
        //  第二条   sql
            String sql2 = "update account set money = money+100 where name = 'B';";
        //    预编译第二条SQL语句
            conn.prepareStatement(sql2).executeUpdate();
        //  以上两条SQL语句都执行曾公,就提交事务
            conn.commit();
            System.out.println("success");
        } catch (Exception e) {
            try{
            //    如果出现异常,就通知数据库回滚事务
                conn.rollback();
            }catch (SQLException throwables){
                throwables.printStackTrace();
            }
            e.printStackTrace();
        }finally {
        //    释放连接
            jdbcUtils.release(conn,pst,null);
        }
    }
}

原文地址:https://www.cnblogs.com/lantianya/p/15154174.html