mybatis中的事务管理器 TransactionManager基础知识

transactionManager提供了两个实现类,但是这两个实现类必须实现Transaction这个接口
Transaction中包含了三个重要的方法:commit(提交)、rollback(回滚),close(关闭)

1
2
3
4
5
6
7
8
9
10
11
public interfance Transaction{
Connection getConnection() throws SQLException;

void commit() throws SQLException;

void rollback() throws SQLException;

void close() throws SQLException;

Integer getTimeout() throws SQLException;
}

Mybatis 为Transaction 提供了两个实现类:jdbcTransaction 和** ManagedTransaction**

配置分别是如下:

1
2
<transactionManager type="JDBC">
<transactionManager type="MANAGED">

JdbcTransaction:顾名思义使用JdbcTransaction生成的JdbcTransaction对象完成对事务的提交(commit())、回滚(rollback())、关闭(close())等;
ManagedTransaction:MyBatis自身不会去实现事务管理,而是让程序的容器来实现对事务的管理。把事务交给容器处理。默认情况下他会关闭链接,但有些情况下有一些容器不想关闭,这是就需要将closeConnection属性设置成false来阻止他默认关闭;