国内用得最多的「数据访问层」框架,它排第一!

程序员私房菜

共 1480字,需浏览 3分钟

 ·

2020-12-21 13:27


Java程序员以前连接数据库是这样的

现在连接数据库是这样的

在传统的JDBC 实现中,我们需要把查询过程写在Java 类中,这样非常不便于后期维护。而使用Mybatis 则可以将查询语句配置在配置文件中,只需要维护好映射关系即可。

Mybatis是一个开源的轻量级半自动化ORM框架,使得面向对象应用程序与关系数据库的映射变得更加容易。熟悉Mybatis的都知道,其源码里涉及到非常多的设计模式,比如

设计模式

Builder模式:例如SqlSessionFactoryBuilder、XMLConfigBuilder、XMLMapperBuilder、XMLStatementBuilder、CacheBuilder;


工厂模式:例如SqlSessionFactory、ObjectFactory、MapperProxyFactory;


单例模式:例如ErrorContext和LogFactory;


代理模式:Mybatis实现的核心,比如MapperProxy、ConnectionLogger,用的jdk的动态代理;还有executor.loader包使用了cglib或者javassist达到延迟加载的效果;

组合模式:例如SqlNode和各个子类ChooseSqlNode等;


模板方法模式:例如BaseExecutor和SimpleExecutor,还有BaseTypeHandler和所有的子类例如IntegerTypeHandler;


适配器模式:例如Log的Mybatis接口和它对jdbc、log4j等各种日志框架的适配实现;


装饰者模式:例如Cache包中的cache.decorators子包中等各个装饰者的实现;


迭代器模式:例如迭代器模式PropertyTokenizer;

如果之前只会使用或者没有看过Mybatis源码,那看到上面这些设计模式可能会有点懵逼。Mybatis用了这么多年了,只会用它来CRUD数据库吗?其底层的架构设计与源码分析,如何连接数据库的?如何执行的?一二级缓存的作用?sql如何解析的?源码中设计到的设计模式......这些技术点都会吗?

也许你曾经也尝试去看过,只是很难坚持下来,没有找到看源码的技巧。最近我看了一期透彻解析Mybatis底层源码分析的课程,从设计模式、缓存原理、源码分析等方面展开讲,而且购课只需0.02元,扫码即可购课:



学习Mybatis源码建议




原则

1.定焦原则:抓主线(抓住一个核心流程去分析,不要漫无目的的去看源代码)

2.宏观原则:站在上帝视角,先脉络后枝叶(切忌试图搞清楚每一行代码)


方法

1. 先会使用,了解框架的设计思想和功能架构

2. 抓主线,多尝试静态看代码

3. 在源码中写注释&画流程图

4. 整合总结


技巧

1. 断点(观察调用栈,利用条件断点,表达式)

2. 反调(Find Usages)

3. 根据接口方法找到具体实现AopProxyFactory

4. 猜测类名方法名(比如doGetBean,doCreateBean)

5. 看控制台日志


Mybatis应该是国内用得最多的「数据访问层」框架了,看了我司的好几个系统,基本都是用Mybatis。所以深入了解Mybatis的重要性不言而喻,扫码即可0.02元购课,获取源码分析课程:

☟戳阅读原文也可购课~

浏览 13
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报