[6-03]spring事务管理和框架整合

来源:互联网 发布:hdmi网络高清传输器tx 编辑:程序博客网 时间:2024/06/07 12:26

一,spring事务管理

1.1spring事务管理三个高层接口

platformTransactionManager 平台相关事务管理器

TransactionDefinition 事务定义信息

TransactionStatus事务运行状态

TransactionManager 是整个spring事务管理核心对象,提供事务管理相关方法

commit rollback等

1.1.1

spring为不同的持久化框架提供不同platformTransactionManager接口实现

使用不同的持久化技术,就需要使用spring提供不同的事务管理器

spring jdbc;mybatis;hibernate;jpa等

jdbc编程-- 通过connection进行事务管理

开启事务conn.setAutoCommit(false);

提交事务conn.commit();

回滚事务conn.rollback();

spring提供DataSourceTransactionManager针对Connection进行事务管理

Hibernate编程--通过session进行事务管理

开启事务 session.beginTransaction();

提交事务session.getTransaction().commit();

回滚事务session.getTransaction().rollback();

spring提供 HibernateTransactionManager针对session进行事务管理


1.1.2 TransactionDefinition事务定义信息

TransactionDefinition 主要指spring管理事务过程中,配置如何对事务进行管理

(隔离级别,传播行为,超时时间,是否只读)



脏读:一个事务读取另一个事务改写但未提交的修改,如果这些数据被回滚,则读到的数据是无效的。

不可重复读:同一事务多次读取同一数据返回结果不同。后续读取能读到另一个事务已提交的数据。相反,可重复读是指同一事务多次读取数据时,能够保证所读数据一样,

后续不能读取到另一事务提交事务。

幻读:一个事务读取了几行数据后,另一个事务插入一些记录,幻读就产生了。再后来的查询中,第一个事务就会发现之前没有的数据。


oracle只支持read committed(默认), serializable;

mysql四种隔离级别都支持,默认是可重复读,比oracle高一个级别;


事务传播行为(七种)