【Spring5中的事务管理操作】

Spring5中的事务管理

一、介绍

  • 事务特性ACID

    原子性(A):一个事务中的多个DML操作要么同时成功,要么同时失败

    一致性(C):事务执行前后数据库中的数据是一致的,不能有冲突

    隔离性(I):多个事务可以同时进行(两个人可以同时借一本书)

    持久性(D):事务完成后对数据的操作是永久的

  • 环境搭建(和JDBCTemplate操作一致)

二、Spring中的事物操作

  • 一般将事务添加到Service层中
  • 两种事务管理方式
    • 编程式事务管理和声明式事务管理(一般使用)
  • 声明式事务管理底层使用AOP
  • Spring中事务管理的API
    • 提供了一个接口,针对不同框架,有不同的实现类(JDBCTemplate/Mybatis使用的是下图实现类)

      image-20220726095353591

  • 使用案例
    1. 在Spring配置文件中配置事务管理实现类(见上图)

      <!--创建事务管理对象-->
      <bean id="TransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
          <!--注入DataSource-->
          <property name="dataSource" ref="dataSource"></property>
      </bean>
      
    2. 在Spring配置文件中添加名称空间:tx,并开启事务注解

      image-20220726100419121

      <!--开启事务注解-->
      <tx:annotation-driven transaction-manager="TransactionManager"></tx:annotation-driven>
      
    3. Service的类或方法上面添加事务注解image-20220726100759871

三、Spring声明中的事务参数

  • propagation:传播行为
    • 一个事务被另一个事务方法调用

    image-20220726103308575

    例如:

    image-20220726104107974

  • isolation:隔离级别
    • 隔离级别与影响image-20220726104333351

    • 设置

      image-20220726104419355

  • timeout:超时时间(s)
  • readOnly:是否只读
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值