事务的概念
- 事务是数据库操作最基本单元,逻辑上的一组操作,要么都成功,如果有一个失败,则所有操作都回滚 
- 事务四个特性ACID - 原子性
- 一致性
- 隔离性
- 持久性
 
事务操作环境模拟
- 配置数据库连接池
| 1 | <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" | 
- 配置JdbcTemplate对象
| 1 | <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> | 
- 创建UserDaoImpl类
| 1 | 
 | 
- 创建UserService类
| 1 | 
 | 
- 此过程模拟的是用户之间的转账
事务管理操作介绍
- 两种方式 - 声明式事务管理- 基于注解
- 基于配置
 
- 编程式事务管理
 
- 声明式事务管理
- 声明式事务管理的底层是AOP原理 
基于注解的声明式事务管理
- 创建事务管理器
| 1 | <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> | 
- 引入命名空间
| 1 | <beans xmlns="http://www.springframework.org/schema/beans" | 
- 开启事务注解
| 1 | <tx:annotation-driven></tx:annotation-driven> | 
- 为UserService类添加事务注解
| 1 | 
 | 
- 测试
| 1 | 
 | 
声明式事务管理参数配置
- propagation:事务传播行为 - REQUIRED
- REQUIRED_NEW
- SUPPORTS
- MANDATORY
- NOT_SUPPORTS
- NEVER
- NESTED
 
- ioslation:事务隔离级别 - Read_Uncommitted
- Read_Committed
- Repeatable_Read
- Serializable
 
- timeout:超时时间 - -1(默认不超时)
- 其他一秒为单位的数字
 
- readIOnly:是否只读 
- rollbackFor:回滚 
- noRollbackFor:不回滚 
- 示例 
| 1 | 
基于配置的声明式事务管理
- 创建事务管理器
| 1 | <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> | 
- 配置通知
| 1 | <tx:advice id="txadvice"> | 
- 配置切入点和切面
| 1 | <aop:config> | 
声明式事务管理的完全注解
- 创建配置类
| 1 | 
 | 
- 测试
| 1 | 
 |