事务概念
逻辑上的一组操作,要么都成功、要么都失败
典型案例:银行转账
事务特性:ACID【原子、一致、隔离、持久】
搭建环境
银行转账操作
web:
service:逻辑操作,调用dao
dao:创建两个方法
- 创建表【id、username、money】
- 创建servic、搭建dao 完成对象创建和注入关系
- 在dao创建另两个方法:多钱、少钱的方法;在service创建转账的方法
- 在web中进行启动
- -------制造异常
- 在service中进行事务处理
- 开启事务
- 捕获异常
事务操作Spring事务管理
事务添加到三层架构里面的Service层中【业务逻辑层】
在Spring进行事务管理操作
分为两种方式:声明式、编程式
编程式:通过代码实现
声明式:
注解【主要】
xml方式
在Spring声明式事务中底层使用的是:AOP原理
Spring事务管理API
提供一个接口,代表事务管理器,这个接口针对不同的框架提供不同的实现类
接口:PlatfromTransactionManger,里面有子接口,有针对不同的框架有不同的实现类【mybatis里是DatasourceTransactionManager】
演示声明式事务
- 在Spring配置文件配置
<bean id="" class="……DatasourceTransactionManager">//注入数据源</bean>
- 在Spring配置文件中开启事务注解【引入名称空间】
- 开启事务注解【
<tx:annotion-driven ttranssaction-mmanager="ttransactttionManager"></tx:annotation-driver>
】 - 在service的方法上添加注解