Spring事务管理高层抽象主要包括3个接口
1. PlatformTransactionManager 事务管理器
实现类 DataSourceTransactionManager 使用Spring JDBC或iBatis进行持久化数据时使用
实现类 HibernateTransactionManager 使用了 Hibernate 进行持久化数据时使用
2.TransactionDefinition 事务的定义信息
1.事务的隔离级别(ISOLATION)
脏读: 一个事务读取了另一个事务改写但还未提交的数据,如果这些数据被回滚,则读取的这些数据是无效的
不可重复读: 在同一事务中,多次读取同一数据返回的结果不同
幻读: 一个事务读取了几行记录后,另一个事务插入数据,在后来的查询中,第一个事务就会发现部分之前没有的记录
为了避免以上问题,可设置事务的隔离级别
隔离级别:READ_UNCOMMITED 级别最低,允许读取还未提交的但改变了的数据
READ_COMMITTED 事务提交后才能读取,可防止脏读 oracle默认
REPEATABLE_READ 对相同字段的多次读取一致 可防止 脏读和不可重复读 mysql 默认