MyBatis 源码学习道路之一 架构

想想每一次的源码分析都应该有自己的一个学习方式,分析方式,或者说是自己的一个套路.

首先总结下自己的源码分析学习方式:

1 首先要知道该源码的架构,以及每一个模块之间都有些什么功能.

2 框架在应用启动过程中,哪些模块分别做哪些事 ,跟跟代码,然后自己注释下.

3 最后再看看要完成某些功能框架做了哪些操作,一样的源码跟跟.

4 看看前人的一些经验,或者官网来更加透彻的分析源码.

那么现在就跟着这样的学习套路来开始自己的分析道路:

1 , mybatis的架构图:

(1) 接口层(API):提供给外部使用的api, 通过这些api来操作数据库.

(2) 数据处理层:如图所示,主要功能就是参数的映射,sql解析,sql执行,对结果的映射.

(3) 基础支撑层:主要是一些数据库的连接管理,事务管理,配置加载,缓存处理.

工作流程整理:

(1)  在启动的时候会加载配置,并初始化sql的配置信息, 配置会分别加载 配置文件和注解上的配置信息,将它们封装成MappedStatement对象(里面主要包含了传入参数映射配置,执行的sql语句,结果映射配置) 存储在内容当中.

(2) 接收调用请求,并传入某条sql的id和参数对象,交给下层的请求处理层进行处理

(3) 处理操作请求:

      (a)根据SQL的ID查找对应的MappedStatement对象。

      (b)根据传入参数对象解析MappedStatement对象,得到最终要执行的SQL和执行传入参数。

     (c)获取数据库连接,根据得到的最终SQL语句和执行传入参数到数据库执行,并得到执行结果。

    (d)根据MappedStatement对象中的结果映射配置对得到的执行结果进行转换处理,并得到最终的处理结果。

    (e)最后释放连接资源.

接下来跟源码分析这个过程,看看具体都是怎么做的.

你可能感兴趣的:(MyBatis 源码学习道路之一 架构)