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 国际许可协议进行许可。

MyBatis 源码分析系列文章合集的更多相关文章

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

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

  2. Spring AOP 源码分析系列文章导读

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

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

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

  4. netty源码分析系列文章

    netty源码分析系列文章 nettynetty源码阅读netty源码分析  想在年终之际将对netty研究的笔记记录下来,先看netty3,然后有时间了再写netty4的,希望对大家有所帮助,这个是 ...

  5. 【Spark SQL 源码分析系列文章】

    从决定写Spark SQL源码分析的文章,到现在一个月的时间里,陆陆续续差不多快完成了,这里也做一个整合和索引,方便大家阅读,这里给出阅读顺序 :) 第一篇 Spark SQL源码分析之核心流程 第二 ...

  6. Go合集,gRPC源码分析,算法合集

    年初时,朋友圈见到的最多的就是新的一年新的FlAG,年末时朋友圈最多的也是xxxx就要过去了,你的FLAG实现了吗? 这个公众号2016就已经创建了,但截至今年之前从来没发表过文章,现在想想以前很忙, ...

  7. MyBatis 源码分析 - 插件机制

    1.简介 一般情况下,开源框架都会提供插件或其他形式的拓展点,供开发者自行拓展.这样的好处是显而易见的,一是增加了框架的灵活性.二是开发者可以结合实际需求,对框架进行拓展,使其能够更好的工作.以 My ...

  8. MyBatis 源码分析 - 缓存原理

    1.简介 在 Web 应用中,缓存是必不可少的组件.通常我们都会用 Redis 或 memcached 等缓存中间件,拦截大量奔向数据库的请求,减轻数据库压力.作为一个重要的组件,MyBatis 自然 ...

  9. MyBatis 源码分析 - 内置数据源

    1.简介 本篇文章将向大家介绍 MyBatis 内置数据源的实现逻辑.搞懂这些数据源的实现,可使大家对数据源有更深入的认识.同时在配置这些数据源时,也会更清楚每种属性的意义和用途.因此,如果大家想知其 ...

随机推荐

  1. MAVEN工程相关配置

    MAVEN工程插件安装: Name: MavenArchiver Location: https://repo1.maven.org/maven2/.m2e/connectors/m2eclipse- ...

  2. odoo 数据库到期提醒

  3. Java并发编程之同步

    1.synchronized 关键字 synchronized 锁什么?锁对象. 可能锁对象包括: this, 临界资源对象,Class 类对象. 1.1 同步方法 synchronized T me ...

  4. IIS发布MVC ASP.NET网站

    发布网站后,发现无法访问,最后在配置文件上添加一段: <system.codedom> <compilers> <compiler language="c#;c ...

  5. Oracle--通配符、Escape转义字符、模糊查询语句

    一.通配符通配符描述示例      %:匹配包含零个或更多字符的任意字符串.WHERE title LIKE '%computer%' 将查找处于书名任意位置的包含单词 computer 的所有书名. ...

  6. apache的.htaccess文件作用和相关配置

    首先.htaccess什么? .htaccess是一个纯文本文件,它里面存放着Apache服务器配置相关的指令. 当我们使用apache部署一个网站代码准备部署到网上的时候,我们手中的apache的h ...

  7. g++编译X265

    自己参考用: msys2 编译X265的命令 编译用工具安装 pacman -S git make tar automake autoconf libtool pkg-config mingw-w64 ...

  8. bittorrent 学习(二) LOG日志和peer管理连接

    代码中的log.h log.c比较简单 void logcmd() 记录命令  int logfile();运行日志的记录 int init_logfile() 开启log文件 源码比较清晰也很简单. ...

  9. experiment 3

    #include <stdio.h> int main() { int number, max, min, n; n=; printf("请输入%d个数: ", n); ...

  10. mysql 1055

    在 /etc/my.cnf 文件里加上如下: sql_mode=NO_ENGINE_SUBSTITUTION