public class JdbcTransactionManager extends Object implements TransactionManager
事务栈:
事务管理器允许使用不同的传播属性反复开启新的事务。所有被开启的事务在正确处置(commit,rollback) 它们之前都会按照先后顺序依次压入事务管理器的“事务栈”中。一旦有事务被处理(commit,rollback)这个事务才会被从事务栈中弹出。
倘若被弹出的事务(A)并不是栈顶的事务,那么在事务(A)被处理(commit,rollback)时会优先处理自事务(A)以后开启的其它事务。
| 限定符和类型 | 字段和说明 |
|---|---|
protected org.slf4j.Logger |
logger |
| 限定符 | 构造器和说明 |
|---|---|
protected |
JdbcTransactionManager(DataSource dataSource) |
| 限定符和类型 | 方法和说明 |
|---|---|
void |
commit(TransactionStatus status)
递交事务
|
protected void |
doBegin(JdbcTransactionStatus defStatus)
初始化一个新的连接,并开启事务。
|
protected void |
doCommit(JdbcTransactionStatus defStatus)
处理当前底层数据库连接的事务递交操作。
|
protected TransactionObject |
doGetConnection(JdbcTransactionStatus defStatus)
获取数据库连接(线程绑定的)
|
protected void |
doRollback(JdbcTransactionStatus defStatus)
处理当前底层数据库连接的事务回滚操作。
|
DataSource |
getDataSource()
获取当前事务管理器管理的数据源对象。
|
TransactionStatus |
getTransaction(Propagation behavior)
开启事务
|
TransactionStatus |
getTransaction(Propagation behavior,
Isolation level)
开启事务
|
TransactionTemplate |
getTransactionTemplate()
获取对应的
TransactionTemplate。 |
boolean |
hasTransaction()
是否存在未处理完的事务(包括被挂起的事务)。
|
boolean |
isTopTransaction(TransactionStatus status)
测试事务状态是否位于栈顶。
|
protected void |
resume(JdbcTransactionStatus defStatus)
恢复被挂起的事务。
|
void |
rollBack(TransactionStatus status)
回滚事务
|
protected void |
suspend(JdbcTransactionStatus defStatus)
挂起事务。
|
protected JdbcTransactionManager(DataSource dataSource)
public DataSource getDataSource()
public boolean hasTransaction()
hasTransaction 在接口中 TransactionManagerpublic boolean isTopTransaction(TransactionStatus status)
isTopTransaction 在接口中 TransactionManagerpublic final TransactionStatus getTransaction(Propagation behavior) throws SQLException
public final TransactionStatus getTransaction(Propagation behavior, Isolation level) throws SQLException
getTransaction 在接口中 TransactionManagerSQLExceptionPropagation,
Connection.setTransactionIsolation(int)protected void doBegin(JdbcTransactionStatus defStatus) throws SQLException
SQLExceptionpublic final void commit(TransactionStatus status) throws SQLException
commit 在接口中 TransactionManagerSQLExceptionprotected void doCommit(JdbcTransactionStatus defStatus) throws SQLException
SQLExceptionpublic final void rollBack(TransactionStatus status) throws SQLException
rollBack 在接口中 TransactionManagerSQLExceptionprotected void doRollback(JdbcTransactionStatus defStatus) throws SQLException
SQLExceptionprotected final void suspend(JdbcTransactionStatus defStatus) throws SQLException
SQLExceptionprotected final void resume(JdbcTransactionStatus defStatus) throws SQLException
SQLExceptionprotected TransactionObject doGetConnection(JdbcTransactionStatus defStatus) throws SQLException
SQLExceptionpublic TransactionTemplate getTransactionTemplate()
TransactionTemplate。