Mybatis源码解析

Mybatis源码解析

一、mybatis 流程三个阶段

  1、初始化阶段:读取XML 配置文件和注解中的配置信息,创建配置对象,并完成各个模块的初始工作;

  2、代理阶段:封装 IBatis 编程模型,使用 mapper 接口开发的初始化工作;

  3、数据处理阶段:通过 SqlSession 完成SQL解析,参数的映射、SQL的执行、结果的反射解析过程;

 

二、简化版 Mybatis 实现思路 

                              

 

 

1、初始化阶段:读取XML 配置文件和注解中的配置信息,创建配置对象,并完成各个模块的初始工作;

  1、创建 SqlSessionFactory 实例

  2、实例化过程中加载配置文件创建 Configuration 对象

  3、通过 factory 创建 SqlSession 

2、代理阶段:封装 IBatis 编程模型,使用 mapper 接口开发的初始化工作;

  4、通过 Sql Session 获取 mapper 结果动态代理

  5、动态代理回调 sqlsession 某个具体方法

  6、Sql Session 将执行方法转发给 Executor

3、数据处理阶段:通过 SqlSession 完成SQL解析,参数的映射、SQL的执行、结果的反射解析过程;

  7、Executor 基于 jdbc 访问数据库获取数据

  8、Executor 通过反射将数据转成 pojo 返回给 Sql Session

  9、将数据返回给调用者;

 

 

 

 

   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

https://www.cnblogs.com/dongying/p/4142476.html

posted @ 2020-09-24 14:15  抽象Java  阅读(138)  评论(0编辑  收藏  举报