事务

1、事务
事务: 指的是逻辑上的⼀组操作,组成这组操作的各个单元要么全都成功,要么全都失败.
事务作⽤:保证在⼀个事务中多次SQL操作要么全都成功,要么全都失败
2、mysql事务操作
sql语句 描述
start transaction 开启事务
commit 提交事务
rollback 回滚事务
3、 DBUtils事务操作
conn.setAutoCommit(false) 开启事务
new QueryRunner() 创建核⼼类,不设置数据源(⼿动管理连接)
query(conn , sql , handler, params ) 或
update(conn, sql , params) ⼿动传递连接, 执⾏SQL语句CRUD
DbUtils.commitAndCloseQuietly(conn) 提交并关闭连接,不抛异常
DbUtils.rollbackAndCloseQuietly(conn) 回滚并关闭连接,不抛异常
代码演示
/*
1.获得连接
2.开始事务
3.具体的sql操作(加钱, 减钱)
4.提交事务 ,释放资源
5.如果出现异常, 回滚事务释放资源
*/
@Test
public void test1() throws SQLException {
Connection conn = null;
try {
//1.获得连接
conn = DruidUtils.getConnetion();
// 2.开始事务
conn.setAutoCommit(false);
// 3.具体的sql操作(加钱, 减钱)
QueryRunner qr = new QueryRunner();
//减钱
String sql = “update account set money=money-? where name=?”;
qr.update(conn, sql, 1000, “jack”);
//模拟错误
int n =1/0;
//加钱
sql = “update account set money=money+? where name=?”;
qr.update(conn, sql, 1000, “rose”);
//4.提交事务 ,释放资源
DbUtils.commitAndCloseQuietly(conn);
} catch (Exception e) {
e.printStackTrace();
//5.如果出现异常, 回滚事务释放资源
DbUtils.rollbackAndCloseQuietly(conn);
}
}
}
本文章为本人复习事务的内容,主要参考了开课吧的课程内容

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值