事物管理:
一、事物管理的回顾:
1、事物的概念:
- 事物:逻辑上的一组操作,组成这组操作的各个单元,要么全都成功,要么全都失败。
2、事物的特性:
- 原子性:事物不可分割。
- 一致性:事物执行前后,数据完整性保持一致。
- 隔离性:一个事务执行不应该收到其他事务的干扰。
- 持久性:一旦事务结束,数据就持久化到数据库。
二、Spring事务管理的API:
三、事务的传播行为:
为了解决特别复杂的业务,业务层之间的方法相互调用的问题。涉及到你这里有事务,我这里也有事务,怎么传播。
四、Spring的事务管理:
1、搭建Spring 事务管理的环境:
-
搭建service的接口和实现类:
-
创建DAO的接口和实现类:
-
配置service和DAO,交给Spring去管理:
-
在DAO中编写扣钱和价钱的方法:
- 1)配置连接池和JDBC模板:
- 2)在DAO中注入JDBC模板:
2、测试:
业务层加一个异常:
一个转了钱,一个没收到。
五、Spring的事务管理:一类:编程式事务(需要手动编写代码)(了解)
1、配置平台事务管理器:
2、Spring提供了事务管理的模板类:
1)配置事务管理的模板类:
3、在业务层注入事务管理的模板:
4、编写事务管理的代码:
5、测试:
无异常时:转账成功
有异常时:
不会数据丢失,也不会转账成功。说明事务已添加
六、Spring事务管理:二类:声明式事务管理(通过配置实现)-------AOP //底层就是AOP
1、XML方式的声明式事务管理(优点:配完以后,业务层就不用管了,所有业务层的类,所有业务层的方法都会执行这个事务)
-
第一步:引入AOP的开发包:
-
第二步:恢复转账环境
-
第三步:配置事务管理器
-
第四步:配置增强:
-
第五步:AOP的配置:
-
第六步:测试:
没有异常时:转账成功。
有异常时:不转账,数额不变。
2、注解方式的声明式事务管理(优点:配置比较方便,但是每次写业务层的时候,要记得加注解@Transactional)
- 第一步:引入AOP的开发包:
- 第二步:恢复转账环境:
- 第三步:配置事务管理器:不管是哪种,事务管理器都得配
- 第四步:开启注解事务:
- 第五步:在业务层上添加事务管理的注解:
- 第六步:测试
没异常:转账成功。
有异常:不转账。
注:两种方式都得会