Open thinkuncle opened 7 years ago
高层抽象主要包括3个接口
Spring为不同的持久化框架提供了不同的Platform TransactionManager接口实现。如: 使用Spring JDBC或iBatis进行持久化数据时使用DataSourceTransactionManager 使用Hibernate3.0版本进行持久化数据时使用HibernateTransactionManager
脏读:一个事务读取了另一个事务改写但还未提交的数据,如果这些数据被回滚,则读到的数据是无效的。 不可重复读:在同一事务中,多次读取同一数据返回的结果有所不同。 幻读:一个事务读取了几行记录后,另一个事务插入一些记录,幻读就发生了。再后来的查询中,第一个事务就会发现有些原来没有的记录。
其中,MySQL默认采用REPEATABLE_READ隔离级别;Oracle默认采用READ_COMMITTED隔离级别
Spring事务管理
高层抽象主要包括3个接口
Platform TransactionManager 事务管理器(提交、回滚事务)
Spring为不同的持久化框架提供了不同的Platform TransactionManager接口实现。如: 使用Spring JDBC或iBatis进行持久化数据时使用DataSourceTransactionManager 使用Hibernate3.0版本进行持久化数据时使用HibernateTransactionManager
TransactionDefinition 事务定义信息(隔离、传播、超时、只读)
脏读:一个事务读取了另一个事务改写但还未提交的数据,如果这些数据被回滚,则读到的数据是无效的。 不可重复读:在同一事务中,多次读取同一数据返回的结果有所不同。 幻读:一个事务读取了几行记录后,另一个事务插入一些记录,幻读就发生了。再后来的查询中,第一个事务就会发现有些原来没有的记录。
事务隔离级别:(五种)
其中,MySQL默认采用REPEATABLE_READ隔离级别;Oracle默认采用READ_COMMITTED隔离级别
事务传播行为:(七种)
TransactionStatus 事务具体运行状态
相关配置