mybatis-事务模块
Posted siye1989
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis-事务模块相关的知识,希望对你有一定的参考价值。
1. 概述
本文,我们来分享 MyBatis 的事务模块,对应 transaction
包。如下图所示:transaction
包
在 《精尽 MyBatis 源码解析 —— 项目结构一览》 中,简单介绍了这个模块如下:
MyBatis 对数据库中的事务进行了抽象,其自身提供了相应的事务接口和简单实现。
在很多场景中,MyBatis 会与 Spring 框架集成,并由 Spring 框架管理事务。
本文涉及的类如下图所示:类图
下面,我们就一起来看看具体的源码实现。
2. Transaction
org.apache.ibatis.transaction.Transaction
,事务接口。代码如下:
// Transaction.java
|
- 连接相关
#getConnection()
方法,获得连接。#close()
方法,关闭连接。
- 事务相关
#commit()
方法,事务提交。#rollback()
方法,事务回滚。#getTimeout()
方法,事务超时时间。实际上,目前这个方法都是空实现。
2.1 JdbcTransaction
org.apache.ibatis.transaction.jdbc.JdbcTransaction
,实现 Transaction 接口,基于 JDBC 的事务实现类。代码如下:
// JdbcTransaction.java |