30、Mybatis进阶:MyBatis_运行原理总结

目录

1说明

1、 1;

1、 2;

1、 3;

2原理总结

2、 1总结的文字描述;

2、 2介绍下MyBatis的四大对象;

2、 3图文介绍;

3分步介绍各个流程

3、 1根据配置文件创建SQLSessionFactory;

3、 2、返回SqlSession的实现类DefaultSqlSession对象他里面包含了Executor和Configuration;Executor会在这一步被创建;

3、 3、getMapper返回接口的代理对象包含了SqlSession对象;

3、 4、查询流程;


1说明

1.1

本文主要是整合了http://www.gulixueyuan.com/my/course/43整合了任务71-78课程的内容,如需更加详细的了解可直接观看视频。

1.2

本文是基于MyBatis的HelloWorld代码进行研究的。代码来自MyBatis总结(二)--helloworld。研究任何框架都建议先从HelloWorld开始研究源码。其次本文内容只是文字叙说,如果需要亲自实践,可以打断点并按照本文总结的内容一一对应着断点跟着走。

1.3

本文研究路线分四步如下图:

*

2原理总结

2.1总结的文字描述

调用DefaultSqlSession的增删改查(Executor);然后会创建一个StatementHandler对象。(同时也会创建出ParameterHandler和        ResultSetHandler)
  
再调用StatementHandler预编译参数以及设置参数值;并且使用ParameterHandler来给sql设置参数

这时才开始调用StatementHandler的增删改查方法;ResultSetHandler封装结果
  注意: 四大对象每个创建的时候都有一个interceptorChain.pluginAll(parameterHandler);

2.2介绍下MyBatis的四大对象

Executor:实际上调用的就是StatementHandler

StatementHandler:处理sql语句预编译,设置参数等相关工作;

ParameterHandler:设置预编译参数用的

ResultHandler:处理结果集

2.3图文介绍

*

3分步介绍各个流程

3.1根据配置文件创建SQLSessionFactory

*

3.2、返回SqlSession的实现类DefaultSqlSession对象。 他里面包含了Executor和Configuration; Executor会在这一步被创建

*

3.3、getMapper返回接口的代理对象 包含了SqlSession对象

*

3.4、查询流程

*

版权声明:本文不是「本站」原创文章,版权归原作者所有 | 原文地址: