mybatis 3_mybatis源码分析

2022-08-03 08:22:43 浏览数 (1)

大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说mybatis 3_mybatis源码分析,希望能够帮助大家进步!!!

最近在网上看了mybatis的源码直播,记录、复习一下当时的内容!!

阅读源码需要从三个方向来剖析:

1.宏观:分析这个框架具备哪些功能

2.微观:阅读源码

3.图解:根据源码画出UML图

阅读源码的方式:

1.跟着代码debug进入源码

2.带着问题来看源码

前期准备

1.引入包

2.准备配置文件

3.配置解析demo

4.业务查询demo

=====================================================================

1.mybatis解析配置是怎样的流程

=====================================================================

假如前期准备完成,现在执行mybatis的demo,第二步是为了拿到文件流,我们直接看第三步并进入mybatis源码

其中new XMLConfigBuilder(reader, environment, properties)只是为了解析xml文件的,

拿到这个对象后,在parser.parse()进行解析XML中的内容

这段代码就是去解析了xml配置的内容,并最终存储在configuration类中

:这里没有详细说,具体看源码,configuration在XMLConfigBuilder类中

解析完数据源等配置后,返回build处,继续看代码

到此,mybatis已经拥有了所有的配置信息【db , sql】

=====================================================================

2.mybait执行(XML)业务查询的流程是怎样

=====================================================================

当sqlSessionFactory对象初始化完成后,我们需要从它的openSession方法获取到sqlSession对象:

configuration中的ExecutorType默认是simple

这里面也是初始化一些内容,这些后面再详细探讨,并在最后返回了DefaultSqlSession(sqlSession)对象

继续往下看这个查询,查看session.selectOne的执行流程

这个是抽象方法,需要子类实现,也就是SimpleExecutor

getFirstResultSet(stmt)的源码如下

=====================================================================

2.mybait是怎样解析

=====================================================================

持续更新中...

0 人点赞