mybatis第四天(源码)

 

cacheRefElement(context.evalNode("cache-ref"));
cacheElement(context.evalNode("cache"));这2个和二级缓存有关

 

mybatis从整体横观可以分为配置文件加载和sqlsession的执行

配置文件加载:全局和映射文件加载

加载全局配置文件

 

--XMLConfigBuilder:用来创建Configuration对象工具类

    --XMLConfigBuilder#构造方法:实例化Configuration对象

          --XPathParser:提供基于xpath(XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历)语法的xml解析器

                --调用XPathParser#构造方法:创建document对象,使用dom解析方式

 

    --XMLConfigBuilder:用来解析全局配置文件,用来形成Configuration对象

        --XMLConfigBuilder#parseConfiguration:解析根标签下的节点(parseConfiguration方法解析)

            --XMLConfigBuilder#mapperElement:解析mappers标签加载映射文件(mapperElement方法解析)

        --XMLMapperBuilder#构造方法:实例化xpatparse对象,并获取映射文件都document

               --XMLMapperBuilder#parse:解析映射文件,目的是获取mappedstatement对象

                    --XMLMapperBuilder#configurationElement:解析映射文件

                          --configurationElement#buildStatementFromContext:解析select,update,insert,delete标签

                                   --XMLStatementBuilder:用来获取configuration对象

                                            --XMLStatementBuilder#parseStatementNode:解析statement节点获取

                                                --MapperBuilderAssistant:mapperstatement构建者助手

                                                     --mapperstatement#addmappedstatement:使用构建者模式创建mappedstatement对象,将mappedstatement对象添加到configuration对象中的一个map结构中,key是statement标签的id也就是select标签的id,

--xmllanguagedriver#createsqlsource:创建sqlsource对象

--xmlscriptbuilder#:这个XMLScriptBuilder类才是真正负责在背后解析mapper文件中的每个<select/>,<insert/>,<update/>,<delete/>节点内的SQL字符串(其中可能包含动态SQL部分,诸如<if/>,<where/>等) 的功臣.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值