作者:广东抱米花_冰月 | 来源:互联网 | 2023-09-11 13:07
为什么阿里巴巴的持久层抛弃hibernate,采用MyBatis框架?原因大概有以下4点:尤其是需要处理大量数据或者大并发情况的网站服务,这也阿里选择MyBatis的原因。MyBa
为什么阿里巴巴的持久层抛弃hibernate,采用MyBatis框架?
原因大概有以下4点:
![](https://img.php1.cn/3cd4a/1eebe/cd5/21e585a7e21fc7dc.png)
尤其是需要处理大量数据或者大并发情况的网站服务,这也阿里选择MyBatis的原因。
![](https://img.php1.cn/3cd4a/1e618/bdf/129913486c37ddf6.jpeg)
MyBatis整体架构
不多讲,先看目录图
![](https://img.php1.cn/3cd4a/1eebe/cd5/67cc2e96eddffff8.png)
![](https://img.php1.cn/3cd4a/1eebe/cd5/443b30bb45e66690.webp)
![](https://img.php1.cn/3cd4a/1eebe/cd5/4283cd4bbba41b87.png)
MyBatis源码笔记文档
第1部分 MyBatis 入门
MyBatis 是一个容易上手的持久层框架,使用者通过简单的学习即可掌握其常用特性的用法,这也是MyBatis 被广泛使用的原因之一。在深入分析MyBatis 源码前,先介绍一下MyBatis 的一些基础知识。
![](https://img.php1.cn/3cd4a/1e618/c5a/d5d40da532c3a782.png)
第2部分 配置文件解析过程
按照 MyBatis 启动流程,这部分将会对 MyBatis 解析配置文件的过程进行分析。我们在使用 MyBatis 框架时,通常会进行一定的设置,使其能更好的满足我们的需求。对于一个框架来说,提供较为丰富的配置文件,也是其灵活性的体现。将会介绍 MyBatis 配置文件中的大部分节点解析过程,包含但不限于 properties、settings、typeAliase、typeHandlers 等
![](https://img.php1.cn/3cd4a/1eebe/cd5/1113165c4904ecc5.webp)
第3部分 映射文件解析过程
这部分是分析映射文件解析的过程。与配置文件不同,映射文件用于配置 SQL语句,字段映射关系等。映射文件中包含、、、
![](https://img.php1.cn/3cd4a/1eebe/cd5/5287a7b3296ea13e.webp)
第4篇 SQL执行流程
将对 MyBatis 执行 SQL 的过程进行较为详尽的分析。该过程比较复杂,涉及的技术点很多。
![](https://img.php1.cn/3cd4a/1e618/cd5/af17da15769ccb2e.jpeg)
第5部分 内置数据源
MyBatis 支持三种数据源配置, 分别为 UNPOOLED 、POOLED 和 JNDI 。并提供了两种数据源实现,分别是UnpooledDataSource 和 PooledDataSource 。在这三种数据源配置中, UNPOOLED 和POOLED 是我们最常用的两种配置,这两种数据源也是本章要重点分析的对象。
![](https://img.php1.cn/3cd4a/1eebe/cd5/617c1173853af4b6.webp)
第6篇 缓存机制
在 Web 应用中,缓存是必不可少的组件。通常都会用 Redis 或 memcached 等缓存中间件,拦截大量奔向数据库的请求,以减轻数据库压力。作为一个重要的组件,MyBatis 自然也在内部提供了相应的支持。通过在框架层面增加缓存功能,可减轻数据库的压力,同时又可以提升查询速度,可谓一举两得。MyBatis 缓存结构由一级缓存和二级缓存构成,这两级缓存均是使用 Cache 接口的实现类。因此本章将首先会向大家介绍 Cache 几种实现类的源码,然后再分析一级和二级缓存的实现。
![膜拜!阿里P7大佬的《MyBatis源码解析文档》太清晰了,面试不再慌](https://img.php1.cn/3cd4a/1eebe/cd5/d84f9786330d9e41.png)
第7篇 插件机制
开发 MyBatis 插件需要对 MyBatis 比较深了解才行,一般来说最好能够掌握 MyBatis 的源码,门槛相对较高。
![膜拜!阿里P7大佬的《MyBatis源码解析文档》太清晰了,面试不再慌](https://img.php1.cn/3cd4a/1eebe/cd5/4283cd4bbba41b87.png)
最后
送大家一个小福利,点击领取Java全套进阶资料
![](https://img.php1.cn/3cd4a/1eebe/cd5/d05d9dfd09a56332.webp)
![](https://img.php1.cn/3cd4a/1eebe/cd5/fb32005f2115b419.webp)
g-4F2tTYap-1625154630222)]
[外链图片转存中…(img-E3s9p6cr-1625154630223)]
![](https://img.php1.cn/3cd4a/1eebe/cd5/617c1173853af4b6.webp)