spring5-事务

事务概念

  1. 什么叫事务
    (1)事务是数据库操作最基本单元,逻辑上一组操作,要么都成功,如果一个失败,操作都失败

  2. 事务特性ACID
    (1) 原子性:
    (2) 隔离性
    (3) 一致性
    (4) 持久性

  3. 事务操作(搭建事务操作环境)
    spring5-事务_第1张图片

  4. 创建数据库表,添加记录

  5. 创建service,搭建dao,完成对象创建和注入关系
    (1) service注入dao,在dao注入jdbcTemplate,在jdbcTemplate注入datasource

(2) 在dao创建两个方法,多钱和少钱的方法,
spring5-事务_第2张图片
spring5-事务_第3张图片
spring5-事务_第4张图片
(3) 如果出现异常
使用事务解决
spring5-事务_第5张图片
6. Spring管理事务介绍
事务添加到javaEE三层结构里面service层(业务逻辑层)
在spring进行事务管理操作,
有两种方式:编程式事务管理和声明式事务管理(使用)
声明式事务管理
(1) 基于注解方式
(2) 基于xml配置方式
在spring进行声明式事务管理,底层使用aop原理

  1. Spring事务管理API
    (1) 提供一个接口,代表事务管理器,这个接口针对不同的框架提供不同的实现类
    spring5-事务_第6张图片
  2. 事务操作(注解声明式事务管理)
  3. 在spring配置文件中创建事务管理器
    spring5-事务_第7张图片
  4. 在spring配置文件开启事务注解
    (1) 在spring配置文件引入tx名称空间
    (2) 开启事务注解
    spring5-事务_第8张图片
  5. 在service类上面(获取service类里面方法上面)添加事务注解
    (1)@Transactional,这个注解添加到类上面,也可以添加到方法上面,
    (2)如果这个注解添加类上面,这个类里面所有方法都添加事务
    (3)如果把这个注解添加到方法上面,为这个方法添加事务
    在这里插入图片描述
  6. 事务操作(声明式事务管理参数配置)
  7. 在service类上面添加注解@Transactional,在这个注解里面可以配置事务相关参数
    spring5-事务_第9张图片
    (1) propagation:事务传播行为
  8. 多事务之间进行调用,这个过程中事务是如何进行管理的,
    spring5-事务_第10张图片
    spring5-事务_第11张图片
    spring5-事务_第12张图片
    (2) isolation:事务隔离级别
  9. 事务有特性成为隔离性,多事务操作之间不会产生影响,不考虑隔离性产生很多问题,
  10. 有三个都问题,藏独,不可重复度,脏读(幻)读
  11. 脏读:一个未提交事务读取到另一个未提交事务的数据
    spring5-事务_第13张图片
    不可重复读:一个未提交的事务读取到了另一个提交事务修改的数据
    spring5-事务_第14张图片
    虚读:
    一个未提交事务读取到另一提交事务添加数据
    通过事务隔离性,解决都问题
    spring5-事务_第15张图片
    在这里插入图片描述
    (3) timeout超时时间
    事务需要在一定的时间内提交,如果不提交进行回滚
    默认值是-1,设置时间以秒单位计算

(4) readonly是否只读
(1) 读,查询操作,写,添加修改删除操作,
(2) Readonly默认值false.表示可以查询,可以添加修改删除操作
(3) 设置readonly值是true,设置为true之后,只能查询
(5) rollbackFor回滚
(1)设置查询哪些异常进行事务回滚
(6) noRollbackFor:不回滚
(1)设置出现哪些异常不进行事务回滚

  1. 事务操作(xml声明式事务管理)
  2. 在spring配置文件中进行配置
    在这里插入图片描述
  3. 配置通知spring5-事务_第16张图片
  4. 配置切入点和切面
    spring5-事务_第17张图片
    1. 事务操作(完全注解声明式管理)
  5. 创建配置类,
    spring5-事务_第18张图片
    spring5-事务_第19张图片
    spring5-事务_第20张图片
    spring5-事务_第21张图片

你可能感兴趣的:(Spring5框架)