1.什么是事务:
事务指的是逻辑上的一组操作,这组操作要么全部成功,要么全部失败。
2.事物的特性:
1.原子性<br>指的是事物是一个不可分割的部分,要么都发生。要么都不发生
2.隔离性 多个并发事务之间数据要相互隔离
3.一致性 事务处理前后数据的完整性必须保持一致
4.持久性 一个事务被提交之后。它对数据库中数据的改变是持久的
3.Spring事物管理常用的3个接口:
4.Spring为不同的持久层框架提供不同的PlatformTransactionManager(接口)的实现
5.如果不考虑隔离。会引发的问题:
1.脏读。 一个事务读取了另一个事务改写但还未提交的数据,如果这些数据被回滚,则读到的数据是无效的。 2.不可重复读。 在同一个事务中,多次读取同一数据返回的结果有所不同。 3.幻读。 一个事务读取了几行记录后,另一个事务插入一些记录,幻读就发生了。再后来的查询中,第一个事务就会发现有些原来没有的记录。 MySQL默认事务隔离级别:REPATABLE_READ(可能出现幻读) Oracle默认:READ_COMMITTED(可能出现不可重复读和幻读)
6.事务的传播行为:解决业务层方法之间相互调用 的问题:
7.事务的传播行为,重点记住红色的3个。
8.Spring支持两种方式事务管理:
9.声明式事务管理方式二:基于AspectJ的XML方式
配置步骤:1.事物管理器 2.增强(就是配置通知) 3.AOP配置
10.声明式事务管理方式三:基于注解的方式
1.applicationContext.xml里配置事物管理器和开启注解方式 2.业务层写上注解@transactional 3.@transactional(这当中可以配置传播行为,隔离级别等内容)
11.Spring事物管理的分类和各方式的区别:
12.applicationContext.xml中引入外部文件、连接池的配置、bean的配置
13.声明式事务管理方式一:基于TransactionProxyFactoryBean的方式
prop格式,key代表方法,实际开发中可能就是key="save*",key="update*"