mybatis源码阅读:mybatis3

最近在网上看了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是怎样解析

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

 

 

 

 

 

持续更新中...

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章