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技术内幕》。这本书在我阅读源码的过程中,给予了不少的帮助,这里感谢该书的作者。同时,也向大家推荐这本书。另外,感谢清华出版社的王金柱编辑提供的书籍排版样例,使得我在排版的过程中可以有所参照。

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

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

  • 本文链接: https://www.tianxiaobo.com/2018/09/09/MyBatis-源码分析系列文章合集/

http://www.tianxiaobo.com/2018/09/09/MyBatis-%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90%E7%B3%BB%E5%88%97%E6%96%87%E7%AB%A0%E5%90%88%E9%9B%86/

MyBatis 源码分析系列文章合集相关推荐

  1. MyBatis 源码分析系列文章导读

    1.本文速览 本篇文章是我为接下来的 MyBatis 源码分析系列文章写的一个导读文章.本篇文章从 MyBatis 是什么(what),为什么要使用(why),以及如何使用(how)等三个角度进行了说 ...

  2. MyBatis 源码分析系列文章导读 1

    1.本文速览 本篇文章是我为接下来的 MyBatis 源码分析系列文章写的一个导读文章.本篇文章从 MyBatis 是什么(what),为什么要使用(why),以及如何使用(how)等三个角度进行了说 ...

  3. Spring IOC 容器源码分析系列文章导读

    1. 简介 前一段时间,我学习了 Spring IOC 容器方面的源码,并写了数篇文章对此进行讲解.在写完 Spring IOC 容器源码分析系列文章中的最后一篇后,没敢懈怠,趁热打铁,花了3天时间阅 ...

  4. Spring IOC 容器源码分析系列文章导读 1

    1. 简介 Spring 是一个轻量级的企业级应用开发框架,于 2004 年由 Rod Johnson 发布了 1.0 版本.经过十几年的迭代,现在的 Spring 框架已经非常成熟了.Spring ...

  5. GDB 源码分析系列文章五:动态库延迟断点实现机制

    系列文章: GDB 源码分析系列文章一:ptrace 系统调用和事件循环(Event Loop) GDB 源码分析系列文章二:gdb 主流程 Event Loop 事件处理逻辑详解 GDB 源码分析系 ...

  6. Dubbo 实现原理与源码解析系列 —— 精品合集

    摘要: 原创出处 http://www.iocoder.cn/Dubbo/good-collection/ 「芋道源码」欢迎转载,保留摘要,谢谢! 1.[芋艿]精尽 Dubbo 原理与源码专栏 2.[ ...

  7. F2FS源码分析系列文章目录

    一.文件系统布局以及元数据结构 总体结构 Superblock区域 Checkpoint区域 Segment Infomation Table区域(SIT) Node Address Table区域( ...

  8. mybatis源码分析系列(开胃菜)-mybatis中的执行器架构体系

    我们知道mybatis通过门面模式给我们提供了一个统一的增删改查的会话SqlSession.但是呢它就像服务员一样只负责点菜并不负责做菜,真正做菜的是执行器.那mybatis中有哪些执行器呢? myb ...

  9. MyBatis 源码分析 - SQL 的执行过程

    本文速览 本篇文章较为详细的介绍了 MyBatis 执行 SQL 的过程.该过程本身比较复杂,牵涉到的技术点比较多.包括但不限于 Mapper 接口代理类的生成.接口方法的解析.SQL 语句的解析.运 ...

最新文章

  1. Zookeeper watch机制
  2. 通过minify将项目中js和css文件的打包
  3. linux bridge搭建虚拟机全过程
  4. 返乡置业?多数人将掉入陷阱
  5. 关于JDBC的一些笔记
  6. 元组-元组和格式化字符串
  7. 5个趣味Python练手项目
  8. PHP FTP操作类( 上传、拷贝、移动、删除文件/创建目录 )
  9. mvc三层架构_Java架构-代码分层的设计之道
  10. 动网论坛“数据库连接出错”处理记-间歇博客
  11. JAVA 数组,(java核心技术 卷1)
  12. 提高Office2010等高版的启动速度文章链接收集-Office2010打开慢速度怎么办?
  13. 凤凰系统中禁用触摸屏
  14. go语言和区块链实战从基础到项目 go开发工程师教程视频 go区块链视频教程合集
  15. 按性别分类进行描述统计(SPSS操作)
  16. 浊音、清音爆破音的时域及频域特性
  17. populate auto detected configs
  18. 【bzoj3034】Heaven Cow与God Bull
  19. git | 如何移除 Untracked files?
  20. 81192!请返航!

热门文章

  1. 用C语言实现Ping程序功能---转
  2. 采用 AI 技术的医疗创业公司大量涌现
  3. 算法与数据结构(稀疏数组)
  4. 小工匠聊架构-超高并发秒杀系统设计 05_服务端性能优化
  5. MySQL-数据库监控初探
  6. Spring Cloud【Finchley】- 20使用@RefreshScope实现配置的刷新
  7. JVM-11虚拟机性能监控与故障处理工具之【JDK的可视化工具-JConsole】
  8. Java学习笔记(四)--数据类型与运算符
  9. Qt窗口、控件、文本等的一些常用操作
  10. java面向对象编程集合边框_java 面向对象编程-- 第15章 集合框架