MyBatis 源码分析系列文章合集

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: 1.简介 我从七月份开始阅读MyBatis源码,并在随后的40天内陆续更新了7篇文章。起初,我只是打算通过博客的形式进行分享。但在写作的过程中,发现要分析的代码太多,以至于文章篇幅特别大。在这7篇文章中,有4篇文章字数超过了1万,最长的一篇文章约有2.7万字(含代码)。

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 下发布,转载需在明显位置处注明出处
作者:田小波
本文同步发布在我的个人博客:http://www.tianxiaobo.com

cc
本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。

目录
相关文章
|
6月前
|
Java Spring 容器
Spring系列文章:Spring6集成MyBatis3.5
Spring系列文章:Spring6集成MyBatis3.5
|
6月前
|
SQL 测试技术 数据库
一篇文章带你学会MybatisPlus~(三)
一篇文章带你学会MybatisPlus~
|
6月前
|
SQL Java 数据库连接
Mybatis源码分析系列之第三篇:Mybatis的操作类型对象
Mybatis源码分析系列之第三篇:Mybatis的操作类型对象
|
SQL XML Java
源码分析系列教程(08) - 手写MyBatis(注解版)
源码分析系列教程(08) - 手写MyBatis(注解版)
112 0
|
1月前
|
Java 数据库连接 mybatis
Springboot整合Mybatis,MybatisPlus源码分析,自动装配实现包扫描源码
该文档详细介绍了如何在Springboot Web项目中整合Mybatis,包括添加依赖、使用`@MapperScan`注解配置包扫描路径等步骤。若未使用`@MapperScan`,系统会自动扫描加了`@Mapper`注解的接口;若使用了`@MapperScan`,则按指定路径扫描。文档还深入分析了相关源码,解释了不同情况下的扫描逻辑与优先级,帮助理解Mybatis在Springboot项目中的自动配置机制。
136 0
Springboot整合Mybatis,MybatisPlus源码分析,自动装配实现包扫描源码
|
5月前
|
XML Java 数据库连接
一篇文章讲明白MyBatis魔法堂:即学即用篇
一篇文章讲明白MyBatis魔法堂:即学即用篇
23 0
|
6月前
|
存储 缓存 Java
探秘MyBatis缓存原理:Cache接口与实现类源码分析
探秘MyBatis缓存原理:Cache接口与实现类源码分析
108 2
探秘MyBatis缓存原理:Cache接口与实现类源码分析
|
6月前
|
SQL Java 数据库连接
MyBatis源码篇:mybatis拦截器源码分析
MyBatis源码篇:mybatis拦截器源码分析
|
6月前
|
SQL 缓存 Java
Mybatis学习文章
Mybatis学习文章
|
6月前
|
SQL Java 数据库连接
还在为学MyBatis发愁?史上最全,一篇文章带你学习MyBatis
还在为学MyBatis发愁?史上最全,一篇文章带你学习MyBatis
128 1
下一篇
无影云桌面