Spring中事务控制的 API介绍
在spring中的事务管理, 最核心的对象就是TransactionManager
PlatformTransactionManager事务核心管理器
它是一个接口,是spring的事务管理器核心接口,
spring并不支持事务的实现,而是负责包装底层事务,应用底层支持什么样的事务策略,spring就支持什么样的事务策略
里面提供了我们常用的操作事务的方法:
TransactionStatus getTransaction(TransactionDefinition definition) : 获取事务状态信息
void commit(TransactionStatus status) : 提交事务
void roolback(TransactionStatus status) : 回滚事务
不过我们是使用他的实现类
DataSourceTransactionManager
- 使用SpringJDBCheiBatis进行持久化数据时使用
- HibernateTransactionManager
- 使用Hibernate3.0版本进行持久化数据时使用
- JpaTransactionManager
- 使用JPA进行持久化时使用
- JdoTransactionManager
- 当持久化机制时Jdo时使用
- jtaTransactionManager
- 使用JTA实现管理事务,在一个事务跨越多个资源时必须使用
常用两个实现类:DataSourceTransactionManager和HibernateTransactionManager
TransactionDefinition信息对象
是一个接口,它是事务的定义信息对象,里面有如下方法
String getName() : 获取事务对象名称
int getIsolationLevel() : 获取事务隔离级别
- int getPropagationBehavior() : 获取事务传播行为
int getTimeout() : 获取事务超出时间
boolean isReadOnly() : 获取事务是否只读
- 不管是读写型事务还是只读型事务, 执行的时候也会开启事务
TransactionStatus运行状态
是一个接口,是事务具体的运行状态 方法介绍:
void flush() : 刷新事务
boolean hasSavepoint() : 获取是否是存在存储点
- boolean isCompleted() : 获取事务是否完成
- boolean isNewTransaction : 获取事务是否为新的事务
- boolean isRoolbackOnly() : 获取事务是否回滚
- void setRoolbackOnly : 设置事务回滚