Mybatis源码正确打开方式

精心挑选要阅读的源码项目;

饮水思源——官方文档,先看文档再看源码;

下载源码,安装到本地,保证能编译运行;

从宏观到微观,从整体到细节;

找到入口,抓主放次,梳理核心流程;

源码调试,找到核心数据结构和关键类;

勤练习,多折腾;

 

MyBatis 源码下载地址:https://github.com/mybatis/mybatis-3

整体架构

Mybatis源码正确打开方式_第1张图片

 

 

mabatis源码思维导图

                                                                                                                                                                      Mybatis源码正确打开方式_第2张图片

Mybatis源码正确打开方式_第3张图片

 

  

                                                                                        Mybatis源码正确打开方式_第4张图片

 

mybatis三大核心流程:

Mybatis源码正确打开方式_第5张图片

 

 mybatis初始化:

Mybatis源码正确打开方式_第6张图片

Mybatis源码正确打开方式_第7张图片

 

 Mybatis源码正确打开方式_第8张图片

Mybatis源码正确打开方式_第9张图片

 

 

 

 进入光标选中的propertiesElement方法内发现,mybatis初始化的时候会把配置文件内的信息放入configuration对象对应的属性内:

 

 Mybatis源码正确打开方式_第10张图片

 

 

 Mybatis源码正确打开方式_第11张图片

 

 Mybatis源码正确打开方式_第12张图片

Mybatis源码正确打开方式_第13张图片

Mybatis源码正确打开方式_第14张图片

Mybatis源码正确打开方式_第15张图片

Mybatis源码正确打开方式_第16张图片

 

 

 至此mybatis初始化工作完成,配置文件的所有信息都被加载到了sqlSessionFactory中的configration对象内。

 

 Mybatis源码正确打开方式_第17张图片

 

 

 

 

mybatis代理阶段:

 Mybatis源码正确打开方式_第18张图片

 Mybatis源码正确打开方式_第19张图片

根据sql的类型update,insert,select,delete 缩小查找范围,然后根据sql的返回类型map?list?就可唯一确定一个sqlsession执行方法

mybatis mapper接口并没有实现类,运行中如何判调用的具体方法,执行指定的sql语句???

 

Mybatis源码正确打开方式_第20张图片

 

 

 Mybatis源码正确打开方式_第21张图片

Mybatis源码正确打开方式_第22张图片

 

 

 Mybatis源码正确打开方式_第23张图片

Mybatis源码正确打开方式_第24张图片

 

 

 Mybatis源码正确打开方式_第25张图片

Mybatis源码正确打开方式_第26张图片

Mybatis源码正确打开方式_第27张图片

 

 

Mybatis源码正确打开方式_第28张图片

 

 

]SqlSession查询接口嵌套关系

 

Mybatis源码正确打开方式_第29张图片

数据库读写阶段:

遵循jdbc的规范,先上一段jdbc代码抛砖引玉:

Mybatis源码正确打开方式_第30张图片

 

 Executor的三个重要组件

StatementHandler:它的作用是使用数据库的Statement或PrepareStatement执行操作,启承上启下作用;

ParameterHandler:对预编译的SQL语句进行参数设置

ResultSetHandler:对数据库返回的结果集(ResultSet)进行封装,返回用户指定的实体类型;

 

接着上一段源码,进入selelectList()方法。

Mybatis源码正确打开方式_第31张图片

Mybatis源码正确打开方式_第32张图片

Mybatis源码正确打开方式_第33张图片

Mybatis源码正确打开方式_第34张图片

 

 Mybatis源码正确打开方式_第35张图片

ParameterHandler 组件已经饥渴难耐了。

Mybatis源码正确打开方式_第36张图片

Mybatis源码正确打开方式_第37张图片

 

 Mybatis源码正确打开方式_第38张图片

 

 Mybatis源码正确打开方式_第39张图片

Mybatis源码正确打开方式_第40张图片

 

 Excutor黑幕如下

 Mybatis源码正确打开方式_第41张图片

 

最后再看Mybatsi官方文档的介绍,是否有豁然开朗的感觉呢?

什么是 MyBatis ?

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。

MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

 

转载于:https://www.cnblogs.com/dw-haung/p/10051250.html

你可能感兴趣的:(Mybatis源码正确打开方式)