首页 > 数据库技术 > 详细

Mybatis源码:SqlSessionFactory初始化

时间:2021-01-14 11:28:06      阅读:26      评论:0      收藏:0      [点我收藏+]

框架分层架构

本文基于Mybatis3.4.1

技术分享图片

SqlSessionFactory初始化

测试方法:

    private SqlSessionFactory getSqlSessionFactory() throws IOException {
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        return new SqlSessionFactoryBuilder().build(inputStream);
    }

点击build方法,最后进入三个入参的build

这里主要创建一个xml的配置解析器,然后parser.parse(),断点进入该方法

技术分享图片

这里方法的parser是一个XPathParser类

技术分享图片

这里的XPathParser,通过该类,可以很方便的解析出xml(至于怎么解析xml,不在本文讨论之内)

技术分享图片

进入parseConfiguration方法:这里就开始具体地解析

技术分享图片

以settingsElement为例,点击进入,这里有所有setting配置项,包括默认值,并且设置到configuration中

技术分享图片

跳出方法,进入mapperElement方法,我们去看mybatis是怎么解析mapper的

技术分享图片

点击进入mapperParser.parse()的方法

技术分享图片

点击进入configurationElement,看mybatis具体是怎么解析Sql映射文件

技术分享图片

进入buildStatementFromContext方法,看mybatis具体是如何解析增删改查标签的

技术分享图片

点击进入parseStatementNode(),

技术分享图片

进入addMappedStatement方法,最后会返回一个statement,它是MappedStatement对象

技术分享图片

statement对象的具体属性如下:包含sql语句,它的id等

技术分享图片

所以一个statement就代表一个增删改查的详细信息。

所以configuration中包含了所有配置文件的详细信息,包括sql映射文件和mybatis全局配置文件。

技术分享图片

configuration的部分重要属性:

技术分享图片

SqlSessionFactory创建结束:最后parse返回的configuration作为成员变量设置进DefualtSessionFactory,SqlSessionFactory创建结束。

技术分享图片

Mybatis源码:SqlSessionFactory初始化

原文:https://www.cnblogs.com/wwjj4811/p/14276059.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!