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 |
