扫描右侧图片或微信搜索 “ Java技术分享屋 ” ,回复 “ 验证码 ” ,获取验证密码。
本资料仅供读者预览及学习交流使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版!
一.资料截图
二.资料介绍
本书是按照 MyBatis 的工作流程进行编排,这样做的好处在于全书的内容会比较连贯。大家可以跟着本书的内容,从头到尾学习 MyBatis 源码。本书共包含七章内容,第一章介绍了 MyBatis 的用法,并对比了 MyBatis 与其他框架的优缺点。从第二章开始,本书进入源码分析阶段。第二章分析了配置文件的解析过程,包括但不限于<properties>、<setting>、<typeAlias>等节点解析过程的分析。第三章分析了映射文件的解析过程,包括<cache>、<sql>、<resultMap>等节点。第四章从 SQL 执行的源头开始,一路进行追踪,较为完整的分析了MyBatis 执行 SQL 的过程。第五章分析了 MyBatis 提供的两种数据源。第六章和第七章分别分析了缓存机制与插件机制的实现。
三.资料目录
目录
第 1 章 MyBatis 入门 ........................................................ 1
1.1 MyBatis 是什么 ......................................................... 1
1.2 为什么要使用 MyBatis ................................................... 2
1.2.1 使用 MyBatis 访问数据库 ................................................... 3
1.2.2 使用 JDBC 访问数据库 ...................................................... 6
1.2.3 使用 SpringJDBC 访问数据库 ................................................ 9
1.2.4 使用 Hibernate 访问数据库 ................................................ 12
1.3 如何使用 MyBatis....................................................... 18
1.3.1 单独使用 MyBatis......................................................... 18
1.3.2 在 Spring 中使用 MyBatis.................................................. 28
1.4 本章小结 .............................................................. 34
第 2 章 配置文件解析过程 .................................................. 35
2.1 配置文件解析过程分析 .................................................. 35
2.1.1 解析<properties>节点 .................................................... 39
2.1.2 解析<settings>节点 ...................................................... 42
2.1.3 设置<settings>内容到 Configuration 中 .................................... 61
2.1.4 解析<typeAliases>节点 ................................................... 62
2.1.5 解析<plugins>节点 ....................................................... 69
2.1.6 解析<environments>节点 .................................................. 70
2.1.7 解析<typeHandlers>节点 .................................................. 72
2.2 本章小结 .............................................................. 79
第 3 章 映射文件解析过程 .................................................. 80
3.1 映射文件解析解析入口 .................................................. 80
3.2 解析映射文件 .......................................................... 84
3.2.1 解析<cache>节点 ......................................................... 86
3.2.2 解析<cache-ref>节点 ..................................................... 93
3.2.3 解析<resultMap>节点 ..................................................... 96
3.2.4 解析<sql>节点 .......................................................... 115
3.2.5 解析 SQL 语句节点 ....................................................... 119
3.3 Mapper 接口绑定过程分析 .............................................. 137
3.4 处理未完成解析的节点 ................................................. 139
3.5 本章小结 ............................................................. 142
第 4 章 SQL 执行流程 ...................................................... 143
4.1 SQL 执行入口 ......................................................... 144
4.1.1 为 Mapper 接口创建代理对象 .............................................. 144
4.1.2 执行代理逻辑 ........................................................... 146
4.2 查询语句的执行过程 ................................................... 158
4.2.1 selectOne 方法分析 ..................................................... 159
4.2.2 获取 BoundSql........................................................... 166
4.2.3 创建 StatementHandler................................................... 187
4.2.4 设置运行时参数到 SQL 中 ................................................. 189
4.2.5 #{}占位符的解析与参数的设置过程梳理.................................... 194
4.2.6 处理查询结果 ........................................................... 196
4.3 更新语句的执行过程 ................................................... 231
4.3.1 更新语句执行过程全貌 ................................................... 231
4.3.2 KeyGenerator........................................................... 236
4.3.3 处理更新结果 ........................................................... 242
4.4 SQL 执行过程总结 ..................................................... 243
4.5 本章小结 ............................................................. 244
第 5 章 内置数据源 ....................................................... 245
5.1 内置数据源初始化过程 ................................................. 245
5.2 UnpooledDataSource................................................... 248
5.2.1 初始化数据库驱动....................................................... 249
5.2.2 获取数据库连接......................................................... 250
5.3 PooledDataSource..................................................... 252
5.3.1 辅助类介绍............................................................. 252
5.3.2 获取连接............................................................... 255
5.3.3 回收连接............................................................... 260
5.4 本章小结 ............................................................. 263
第 6 章 缓存机制 ......................................................... 264
6.1 缓存类介绍 ........................................................... 264
6.1.1 PerpetualCache......................................................... 265
6.1.2 LruCache............................................................... 267
6.1.3 BlockingCache.......................................................... 270
6.2 CacheKey............................................................. 273
6.3 一级缓存 ............................................................. 276
6.4 二级缓存 ............................................................. 280
6.5 本章小结 ............................................................. 294
第 7 章 插件机制 ......................................................... 295
7.1 插件机制原理......................................................... 295
7.1.1 植入插件逻辑 ........................................................... 296
7.1.2 执行插件逻辑 ........................................................... 300
7.2 实现一个分页插件 ..................................................... 302
7.3 本章小结 ............................................................. 306
附录 MyBatis 源码分析系列文章列表 ........................................ 307