JDBC事务 笔记

概念

在一个完整的业务逻辑中,所包含的所有小单元(SQL语句),要么同时成功,要么同时失败
实际运用中:必须要保证同一个事务中的所有小单元sql代码的指向,必须要在相同的连接对象上

事务四大特性

  • 原子性:强调事务的不可分割
  • 一致性:事务的执行的前后,数据的完整性保持一致,事务执行前和后数据的总和不变 :如转账业务,无论事务执行成功否,参与转账的两个账号余额之和应该是不变的。
  • 隔离性:一个事务在执行的过程中,不应该受到其他事务的干扰。事务独立运行。一个事务处理后的结果,影响了其他事务,那么其他事务会撤回。事务的100%隔离,需要牺牲速度。
  • 持久性:事务一旦结束,数据就持久到数据库中
MySQL事务

在默认情况下,MySQL每执行一条SQL语句,都是一个单独的事务。如果需要在一个事务中包含多条SQL语句,那么需要开启事务和结束事务。

  • 开启事务:start transaction
  • 结束事务:commit或rollback

在执行SQL语句之前,先执行start transaction,这就开启了一个事务(事务的起点),然后可以去执行多条SQL语句,最后要结束事务,commit表示提交,即事务中的多条SQL语句所作出的影响会持久到数据库中;如果中途发生异常,则rollback,表示回滚到事务的起点,之前做的所有操作都被撤销了。

JDBC事务
  • 在JDBC中处理事务,都是通过Connection完成的。
  • 同一事务中所有的操作,都在使用同一个Connection对象

Connection的三个与事务有关方法:

  • setAutoCommit(boolean):设置是否为自动提交事务,如果true(默认值为true)表示自动提交,也就是每条执行的SQL语句都是一个单独的事务,如果设置为false,那么相当于开启了事务了;con.setAutoCommit(false) 表示开
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值