11--Spring5 事务

1、事务概念

(1)什么是事务

*事务是操作数据库的最基本单元,逻辑上的一组操作,要么都成功,要么都失败,如果有一个失败那么全部失败

*典型场景:银行转账

(2)事务四个特性(ACID)

*原子性:要么都成功,要么都失败

*一致性:总量不发生变化

*隔离性:多个事务之间不相互影响

*持久性:数据库表中发生变化

2、事务操作(搭建事务环境)

(1)创建表,添加记录

(2)创建service搭建dao,完成对象创建和注入关系

*service注入dao,dao注入JDBCTemplate,在配置文件 JDBCTemplate注入DataSource

(3)在dao创建两个方法,多钱和少钱方法,在service创建一个转账方法

dao接口

dao接口实现类

srrvice

测试类 

(4)如果出现异常怎么解决

*上面异常如何解决呢?

        *使用事务

*事务的操作过程 

3、事务操作(Spring事务管理介绍)

(1)事务添加到三层结构里面的Service层

(2)在Spring进行事务管理操作

*有两种方式:编程式事务管理和声明式事务管理(常用)

3)声明式事务管理

*基于注解方式(使用) 

*基于xml配置文件方式

(4)在spring进行声明式事务管理,底层原理AOP原理

(5)spring事务管理API

 4、事务操作(注解声明式事务管理)

(1)在spring配置文件配置事务管理器

(2)声明事务的命名空间

 (3)开启事务

 (4)在service类上面或者类方法里面添加@Transactional事务注解

*如果添加到类上面则整个类都会开启事务

*添加到方法上面只有方法会开启事务

 

5、事务操作(声明式事务管理参数配置)

(2)Propagation:事务的传播行为 

*多事务方法直接进行调用,这个过程中事务是如何管理的

 (3)ioslation:事务隔离级别

*事务有特性成为隔离性,多事务之间不会产生影响。不考虑隔离性产生很多问题

*有三个读问题:脏读、不可重复读、虚(幻)读

 虚读:一个未提交的事务,读取到另一个提交事务添加的数据

解决:通过设置隔离级别,解决读问题

(4)timeout:超时时间

*事务需要在一定时间内进行提交,如果不提交进行回滚

* 默认值是-1,设置时间单位以秒为单位

(5)readOnly:是否只读

*读:查询操作;写:添加修改删除操作

*readOnly默认值是false,表示可以查询添加修改删除操作

*设置readOnly是true,表示只能查询

(6)rollbackFor:回滚

*设置出现哪些异常,进行回滚

(7)noRollbackFor:不回滚

*设置出现哪些异常,不进行回滚

6、事务操作(XML声明式事务管理)

(1)在spring配置文件中进行配置

*配置事务管理器

*配置通知

*配置切入点和切面

7、事务操作(完全注解开发)

(1)创建一个config类

 

 (2)加上注解

(3)测试类

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值