SpringBoot中使用事务

1.事务的定义

        事务(Transaction)是由一系列对系统中数据进行访问与更新的操作所组成的一个程序 执行逻辑单元(Unit)。事务具有四个特征(ACID),分别是原子性(Atomicity )、一致性(Consistency )、隔离性(Isolation) 和持久性(Durability),简称为事务的ACID特性。

原子性(Atomicity):原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。
一致性(Consistency):事务执行前后数据的完整性必须保持一致。比如在转账事务操作中,事务执行前后金额的总数应保持不变。
隔离性(Isolation):事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离。
持久性(Durability):持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响。
       

2.springboot中事务的使用步骤

        2.1.在需要使用事务的类 、接口、或者方法上添加@Transactional注解

        2.2.默认是在出现运行时异常时回滚事务,如果需要指定异常来回滚事务,可以通过rollbackFor属性来指定异常类。例如:

@Transactional(rollbackFor = Exception.class) 表示所有的异常都进行回滚。

3.可以在yml配置文件中开启事务管理日志,查询操作的事务日志记录。

#spring事务管理日志
logging:
  level:
    org.springframework.jdbc.support.JdbcTransactionManager: debug
    /***
     * 根据id删除部门
     * @param id
     */
    @Transactional(rollbackFor = Exception.class)  //spring事务管理
    @Override
    public void delete(Integer id) {
        deptMapper.deleteById(id); //根据id删除部门 数据
        int i = 1 / 0; //模拟异常
        empMapper.deleteByDeptId(id); //删除该部门下的所有员工数据
    }

这样Spring Boot事务就实现了,不需要其他配置。

注:SpringBoot项目会自动配置一个DataSourceTransactionManager,所以我们只需在方法(或者类)加上@Transactional注解,就自动纳入Spring的事务管理了。

3、事务的传播行为:

Propagtion:指的就是当一个事务方法被另外一个事务方法调用时,这个事务方法应该如何进行事务控制。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zqrCode

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值