mybatis初始化流程源码分析

说到mybatis,相信很多小伙伴都对它很熟悉不过了,mybatis是一个orm(对象关系映射)框架,可以灵活的根据需求进行sql语句的写,也增加了许多动态sql,来应对不同的场景,可谓是程序猿们一大热点。要想对他熟悉的使用,我们需要对他进行分析,才能运用自如。

    首先,mybatis初始化流程其实也就几部分

1、读配置文件,加载输入流。

2、创建一个sqlSessionFactoryBuilder,使用sqlSessionFactoryBuilder对象调用build方法创建一个sqlsessionfactory对象。

3.第三步,根据返回的sqlsessionfactory对象,打开一个sqlsession,供我们进行相关操作。

在这里主要的就是其中的第二步,最为关键。这里我们仔细分析一下。

进入sqlSessionfactorybuilder之后调用构造方法,在build方法中注意看红色框里面的两行,首先是new了个xmlConfigBuilder,然后将我们之前读配置文件用到的输入流传入,其他参数为null,我们继续跟进去看看怎么回事。

在xmlConfigBuilder里面,会初始化一个叫做Configuration这样一个对象,这个对象在之后就保存了关于mybatis配置文件里面的一些信息以及mapper文件的信息。之后回到new xmlConfigBuilder那个地方。如下图框所示,小框里面是调用xmlConfigBuilder的parser方法对mybatis配置文件进行解析,方法最终返回一个Configuration对象,里面保存了配置文件的各种信息。然后再用build方法,构造一个sqlSessionFactory,其实是DefaultSqlSessionFactory。

下图就是开始对配置文件进行解析,主要对environments和mappers标签进行分析。

root.evalNode('environments')这个就是找到配置文件environments这个标签。



通过读取配置文件相关信息后,将保存到configuration对象里面。然后在sqlSessionFactory里面调用build方法,返回一个defaultSqlSessionFactory对象,之后在打开一个sqlSession连接,就可以进行相关操作了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容