ibatis源码浅析- 初探
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 类图
转载于:https://www.cnblogs.com/yangjin-55/archive/2012/06/10/2786535.html
ibatis源码浅析- 初探相关推荐
- hashmap允许null键和值吗_hashMap底层源码浅析
来源:https://blog.csdn.net/qq_35824590/article/details/111769203 hashmap是我们经常使用的一个工具类.那么知道它的一些原理和特性吗? ...
- Android Loader机制全面详解及源码浅析
原文出处:csdn@工匠若水,http://blog.csdn.net/yanbober/article/details/48861457 一.概述 在Android中任何耗时的操作都不能放在UI主线 ...
- 内核启动流程分析(四)源码浅析
目录 kernel(四)源码浅析 建立工程 启动简析 head.s 入口点 查询处理器 查询机器ID 启动MMU 其他操作 start_kernel 处理命令行 分区 kernel(四)源码浅析 建立 ...
- harbor登录验证_Harbor 源码浅析
Harbor 源码浅析www.qikqiak.com Harbor 是一个CNCF基金会托管的开源的可信的云原生docker registry项目,可以用于存储.签名.扫描镜像内容,Harbor 通 ...
- fetch first mysql_MySQL多版本并发控制机制(MVCC)源码浅析
MySQL多版本并发控制机制(MVCC)-源码浅析 前言 作为一个数据库爱好者,自己动手写过简单的SQL解析器以及存储引擎,但感觉还是不够过瘾.<>诚然讲的非常透彻,但只能提纲挈领,不能让 ...
- 【flink】Flink 1.12.2 源码浅析 : Task数据输入
1.概述 转载:Flink 1.12.2 源码浅析 : Task数据输入 在 Task 中,InputGate 是对输入的封装,InputGate 是和 JobGraph 中 JobEdge 一一对应 ...
- 【flink】Flink 1.12.2 源码浅析 :Task数据输出
1.概述 转载:Flink 1.12.2 源码浅析 :Task数据输出 Stream的计算模型采用的是PUSH模式, 上游主动向下游推送数据, 上下游之间采用生产者-消费者模式, 下游收到数据触发计算 ...
- 【flink】Flink 1.12.2 源码浅析 : StreamTask 浅析
1.概述 转载:Flink 1.12.2 源码浅析 : StreamTask 浅析 在Task类的doRun方法中, 首先会构建一个运行环境变量RuntimeEnvironment . 然后会调用lo ...
- 【flink】Flink 1.12.2 源码浅析 : Task 浅析
1.概述 转载:Flink 1.12.2 源码浅析 : Task 浅析 Task 表示TaskManager上并行 subtask 的一次执行. Task封装了一个Flink operator(也可能 ...
最新文章
- 2021年大数据ELK(七):安装Elasticsearch-head插件
- 字节最新文本生成图像AI,训练集里居然没有一张带文字描述的图片?!
- 遗传算法解决排序问题
- 百兆以太网传输距离_罗森伯格陪你做车载——汽车以太网(三)
- 【原创】如何使用Jmockit进行单元测试
- mysql 记录所有操作_mysql 的一些记录的操作
- 网站程序员的程序员成长之路大概分几个阶段 和未来的发展
- Elasticsearch7.15.2 集成ik中文分词器 适用于单机和集群
- 宁波大学计算机应用技术考研,宁波大学2021年计算机考研拟录取数据分析
- 维基媒体宣布采用 Vue.js 进行前端开发
- 什么原因导致MacBook Pro过热?如何解决这一问题?
- 个图标当十个用—多功能系统级图标制作攻略
- android_x86安装arm转译
- MYSQL 按照身份证筛选年龄和性别
- VUE使用echarts实现中国地图航线动态展示
- java modelbus_modelbus tcp java
- 249PHP等于多少钱,一百万新台币等于多少人民币
- 网络写作一年稿酬最高可达150万元
- VC中用代码移动CDockPane的位置
- IIS服务器安全配置[摘]