摘要:简介我从七月份开始阅读源码,并在随后的天内陆续更新了篇文章。考虑到超长文章对读者不太友好,以及拆分文章工作量也不小等问题。经过两周紧张的排版,一本小小的源码分析书诞生了。我在写系列文章中,买了一本书作为参考,这本书是技术内幕。
1.简介
我从七月份开始阅读MyBatis源码,并在随后的40天内陆续更新了7篇文章。起初,我只是打算通过博客的形式进行分享。但在写作的过程中,发现要分析的代码太多,以至于文章篇幅特别大。在这7篇文章中,有4篇文章字数超过了1万,最长的一篇文章约有2.7万字(含代码)。考虑到超长文章对读者不太友好,以及拆分文章工作量也不小等问题。遂决定将博文整理成电子书,方便大家阅读。
经过两周紧张的排版,《一本小小的MyBatis源码分析书》诞生了。本书共7章,约300页。本书以电子书的形式发布,大家可自由的下载。下载地址如下:
百度网盘:点击下载
百度文库:审核中,这里先放上我的个人主页
CSDN: 点击下载
测试代码:GitHub
下面来看看本书的缩略图。
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
本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/77061.html
摘要:前提好几周没更新博客了,对不断支持我博客的童鞋们说声抱歉了。熟悉我的人都知道我写博客的时间比较早,而且坚持的时间也比较久,一直到现在也是一直保持着更新状态。 showImg(https://segmentfault.com/img/remote/1460000014076586?w=1920&h=1080); 前提 好几周没更新博客了,对不断支持我博客的童鞋们说声:抱歉了!。自己这段时...
摘要:慢慢地,关于的原创学习文章已经写了多篇了会一直放出来,目前篇,因此做一个合集,献给那些对新版本脚手架使用和背后设计感兴趣的同学,都是一步一步去看源码,也给官方提了几次,合进去了几个原创不易,欢迎大家互相转发,期望大家一起快速过度到版本目录 慢慢地,关于 Vue CLI 3 的原创学习文章已经写了 20 多篇了(会一直放出来,目前 23 篇), 因此做一个合集,献给那些对新版本脚手架使用...
摘要:本文速览本篇文章是我为接下来的源码分析系列文章写的一个导读文章。年该项目从基金会迁出,并改名为。同期,停止维护。符号所在的行则是表示的执行结果。同时,使用无需处理受检异常,比如。另外,把写在配置文件中,进行集中管理,利于维护。 1.本文速览 本篇文章是我为接下来的 MyBatis 源码分析系列文章写的一个导读文章。本篇文章从 MyBatis 是什么(what),为什么要使用(why),...
摘要:从使用到原理学习线程池关于线程池的使用,及原理分析分析角度新颖面向切面编程的基本用法基于注解的实现在软件开发中,分散于应用中多出的功能被称为横切关注点如事务安全缓存等。 Java 程序媛手把手教你设计模式中的撩妹神技 -- 上篇 遇一人白首,择一城终老,是多么美好的人生境界,她和他历经风雨慢慢变老,回首走过的点点滴滴,依然清楚的记得当初爱情萌芽的模样…… Java 进阶面试问题列表 -...
阅读 1003·2021-11-25 09:43
阅读 1672·2019-08-30 13:59
阅读 1588·2019-08-30 11:22
阅读 2122·2019-08-30 11:06
阅读 1298·2019-08-28 17:51
阅读 3717·2019-08-26 12:12
阅读 777·2019-08-26 12:11
阅读 442·2019-08-26 12:10