MyBatis 源码分析系列文章合集

6,315 阅读7分钟
原文链接: click.aliyun.com

1.简介

我从七月份开始阅读MyBatis源码,并在随后的40天内陆续更新了7篇文章。起初,我只是打算通过博客的形式进行分享。但在写作的过程中,发现要分析的代码太多,以至于文章篇幅特别大。在这7篇文章中,有4篇文章字数超过了1万,最长的一篇文章约有2.7万字(含代码)。考虑到超长文章对读者不太友好,以及拆分文章工作量也不小等问题。遂决定将博文整理成电子书,方便大家阅读。

经过两周紧张的排版,《一本小小的MyBatis源码分析书》诞生了。本书共7章,约300页。本书以电子书的形式发布,大家可自由的下载。下载地址如下:

百度网盘:点击下载

百度文库:审核中,这里先放上我的个人主页

CSDN: 点击下载

测试代码:GitHub

下面来看看本书章节的缩略图。

hy

2.目录

第1章 MyBatis入门

         1.1 MyBatis是什么

         1.2 为什么要使用MyBatis

                  1.2.1 使用MyBatis访问数据库

                  1.2.2 使用JDBC访问数据库

                  1.2.3 使用SpringJDBC访问数据库

                  1.2.4 使用Hibernate访问数据库

         1.3如何使用MyBatis

                  1.3.1 单独使用MyBatis

                  1.3.2 在Spring中使用MyBatis

         1.4 本章小结

第2章 配置文件解析过程

         2.1 配置文件解析过程分析

                  2.1.1 解析节点

                  2.1.2 解析节点

                  2.1.3 设置内容到Configuration中

                  2.1.4 解析节点

                  2.1.5 解析节点

                  2.1.6 解析节点

                  2.1.7 解析节点

         2.2 本章小结

第3章 映射文件解析过程

         3.1 映射文件解析解析入口

         3.2 解析映射文件

                  3.2.1 解析节点

                  3.2.2 解析节点

                  3.2.3 解析节点

                  3.2.4 解析节点

                  3.2.5 解析SQL语句节点

         3.3 Mapper接口绑定过程分析

         3.4 处理未完成解析的节点

         3.5 本章小结

第4章 SQL执行流程

         4.1 SQL执行入口

                  4.1.1 为Mapper接口创建代理对象

                  4.1.2 执行代理逻辑

         4.2 查询语句的执行过程

                  4.2.1 selectOne方法分析

                  4.2.2 获取BoundSql

                  4.2.3 创建StatementHandler

                  4.2.4 设置运行时参数到SQL中

                  4.2.5 #{}占位符的解析与参数的设置过程梳理

                  4.2.6 处理查询结果

         4.3 更新语句的执行过程

                  4.3.1 更新语句执行过程全貌

                  4.3.2 KeyGenerator

                  4.3.3 处理更新结果

         4.4 SQL执行过程总结

         4.5 本章小结

第5章 内置数据源

         5.1 内置数据源初始化过程

         5.2 UnpooledDataSource

                  5.2.1 初始化数据库驱动

                  5.2.2 获取数据库连接

         5.3 PooledDataSource

                  5.3.1 辅助类介绍

                  5.3.2 获取连接

                  5.3.3 回收连接

         5.4 本章小结

第6章 缓存机制

         6.1 缓存类介绍

                  6.1.1 PerpetualCache

                  6.1.2 LruCache

                  6.1.3 BlockingCache

         6.2 CacheKey

         6.3 一级缓存

         6.4 二级缓存

         6.5 本章小结

第7章 插件机制

         7.1 插件机制原理

                  7.1.1 植入插件逻辑

                  7.1.2 执行插件逻辑

         7.2 实现一个分页插件

         7.3 本章小结

附录 MyBatis源码分析系列文章列表

3.写在最后

本书的排版工作耗时两周,其中40%的时间用在了内容的修改上,另外40%用在了代码的整理与排版上,最后的20%则是花在了图片和小修小改上。总的来说,整个过程还是有点辛苦的。当然,在完成排版后,成就感也是满满的。经过这次排版,深感写书不易。所以大家在日常学习过程中,应尽量买正版书予以支持。我在写MyBatis系列文章中,买了一本书作为参考,这本书是《MyBatis技术内幕》。这本书在我阅读源码的过程中,给予了不少的帮助,这里感谢该书的作者。同时,也向大家推荐这本书。另外,感谢清华出版社的王金柱编辑提供的书籍排版样例,使得我在排版的过程中可以有所参照。

最后需要说明的是,我个人工作刚满两年,不管是技术能力,还是工作经验,均处于入门水平。同时这也是我写的第一本电子书,经验不足。因此对于书中写的不好的地方,还请大家见谅,同时也希望大家多多指导。

好了,本文到此结束,感谢大家的阅读。

本文在知识共享许可协议 4.0 下发布,转载需在明显位置处注明出处
作者:田小波
本文同步发布在我的个人博客:www.tianxiaobo.com
cc
本作品采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。