ibatis源码浅析- 初探

深入解析IBatis框架的核心类及操作流程
本文详细解析了IBatis框架的核心类,包括SqlMapExecutor、SqlMapTransactionManager、SqlMapClient和SqlMapSession,阐述了它们在CURD操作中的作用,并通过时序图展示了插入操作的执行过程。同时,介绍了MappedStatement类及其在处理SQL参数和返回结果中的应用。

ibatis核心类

SqlMapExecutor:定义了数据库curd操作api

SqlMapTransactionManager : 主要定义了事务管理功能

SqlMapClient:继承SqlMapExecutor, SqlMapTransactionManager接口 也就具有curd操作 事务管理行为

SqlMapSession:它有SqlMapClient实现接口一样,SqlMapClient的实例中持有SqlMapSession的引用, 也就是说在SqlMapClient的基础上 包装了一层, SqlMapSession 的实例对于SqlMapClient来说是线程安全的 在SqlMapClient中主要使用到了ThreadLocal来控制

从以上可以看出ibatis api入口有两个

1. 通过 SqlMapClientBuilder 的buildSqlMapClient方法 构造SqlMapClient的实例来完成curd操作 这个也是最传统的

2.以SqlMapSession为入口 在执行完curd操作后 调用close方法 关闭Statement

inser操作时序图

SqlMapExecutorDelegate: 这个类耦合了 curd的执行环境 通过调用其他各个组件类的方法 完成操作 事务就在此控制

MappedStatement : 保存sqlmap 映射文件statement的定义 还会涉及到处理sql 参数(ParameterMap) 返回结果(ResultMap)

SqlExecutor: 包装了Statement的执行

StatementScope:一次数据库操作上下文

SessionScope:一次请求上下文, 一次请求可能包括多个数据库操作, 同一事务.

MappedStatement 类图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值