美文网首页
MyBatis 源码学习道路之一 架构

MyBatis 源码学习道路之一 架构

作者: 世外小虫 | 来源:发表于2018-01-18 15:13 被阅读0次

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

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

    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 源码学习道路之一 架构

          本文链接:https://www.haomeiwen.com/subject/gkwioxtx.html