1.什么是事物
对数据操作中的基本单元,事物指的是一组操作,要么都成功,一个失败,全都失败
2.事物的特性
原子性,一致性,隔离性,持久性
3.不考虑隔离性产生读的问题(隔离性:多个事物之间不产生影响)
脏读,不可重复读,幻读,虚读
4,解决读的问题
设置隔离级别
spring事物管理的两种方式
第一种 编程式事务管理(不用)
第二种 声明式事物管理
1.基于xml的配置
2.基于注解的配置
事物管理器接口PlatformTransactionManager 的jdbc和iBatis的实现类为org.springframework.jdbc.datasource.DataSourceTransactionManager
一:添加事物管理,出现异常进行回滚操作
比如:在特殊情况下,数据库执行了取出,突然断网,断电的情况下,没有在后续的写入,导致出现问题,这时候使用回滚,让取出也不进行执行
对数据操作中的基本单元,事物指的是一组操作,要么都成功,一个失败,全都失败
2.事物的特性
原子性,一致性,隔离性,持久性
3.不考虑隔离性产生读的问题(隔离性:多个事物之间不产生影响)
脏读,不可重复读,幻读,虚读
4,解决读的问题
设置隔离级别
spring事物管理的两种方式
第一种 编程式事务管理(不用)
第二种 声明式事物管理
1.基于xml的配置
2.基于注解的配置
事物管理器接口PlatformTransactionManager 的jdbc和iBatis的实现类为org.springframework.jdbc.datasource.DataSourceTransactionManager
一:添加事物管理,出现异常进行回滚操作
比如:在特殊情况下,数据库执行了取出,突然断网,断电的情况下,没有在后续的写入,导致出现问题,这时候使用回滚,让取出也不进行执行
<!-- 配置事务管理器 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- 配置事务增强 -->
<tx:advice id="txadvice" transaction-manager="transactionManager">
<!-- 做事务操作 -->
<tx:attributes>
<!-- 设置进行事务操作的方法的匹配规则 -->
<tx:method name="acount*" propagation="REQUIRED"/>
</tx:attributes>
</tx:advice>
<!-- 配置切面 -->
<aop:config>
<!-- 配置切入点 -->
<aop:pointcut expression="execution(* com.service.UserService.*(..))" id="pointcut"/>
<!-- 配置切面 -->
<aop:advisor advice-ref="txadvice" pointcut-ref="pointcut"/>
</aop:config>
注:dataSource为配置好的bean,连接数据库的属性
二:使用注解配置事务管理器
1.配置事务管理器
<!-- 配置事务管理器 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
2.启动事务管理器
<tx:annotation-driven transaction-manager="transactionManager" />
3.在需要的类的上面添加注解
@Transactional
即可.