一、Spring事务方式
- 编程式事务
- 声明式事务(一般使用这种)
二 、声明式事务管理
1.有两种方式: 注解方式(一般使用这种方式)和xml配置文件方式
2. Spring声明式事务底层使用AOP实现
三、Spring事务管理API
1.Spring提供了一个接口(PlatformTransactionManager),代表事务管理器,这个接口针对不同的框架提供了不同的实现类
2. Spring配置文件中创建事务管理器,并开启事务注解
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
<!-- 开启事务注解 -->
<tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven>
- 使用@Transactional注解添加在类或者方法上面
(1)添加在类上,表示该类内的所有方法都添加事务
(2)添加在方法上,表示该方法添加事务
四、声明式事务管理参数配置
参数介绍:
-
propagation:事务传播行为
(1)多事务方法直接进行调用,这个过程中事务是如何进行管理的
事务方法:对数据库表数据进行变化的操作
(2)事务传播行为的种类
(3)7类传播行为着重记住这两种
在add方法内,调用update方法
REQUIRED:当add方法存在事务,update使用add方法的事务;add方法不存在事务,update创建新的事务
REQUIRED_NEW:无论add方法是否存在事务,update方法都会创建新的事物 -
isolation:事务隔离级别
-
timeout:超时时间
(1)事务需要在一定时间内提交,如果未提交,事务回滚
(2)默认超时时间为-1,单位为秒。 -
readOnly:是否只读
(1)默认值为false,表示可以查询,也可以做增、删、改操作
(2)设置成true后,只能做查询操作 -
rollbackFor:回滚
(1)设置出现哪些异常进行事务回滚 -
noRollbackFor:不回滚
(1)设置出现哪些异常不进行十五回滚