说明
本文仅关注MyBatis SQL XML解析(select/update/insert/delete),不关注MyBatis的其他功能,如果想了解MyBatis的其他功能,可以参考MyBatis官网
解析过程

环境准备
- 1.克隆MyBatis源码
1 | git clone https://github.com/fuzi1996/mybatis-3.git |
使用3.5.7_code_read分支
测试代码介绍
测试代码位置org.apache.ibatis.builder.XmlMapperBuilderTest#selfTest该单元测试主要测试mapper中的select、update、insert、delete语句的解析
对应xml文件地址:src\test\java\org\apache\ibatis\builder\SelfTestMapper.xml,可以看到这里面只有一个select语句
解析过程
1.构建XMLMapperBuilder
构建XMLMapperBuilder需要构建MyBatis的全局配置对象Configuration,这里直接new一个Configuration即可
1 | Configuration configuration = new Configuration(); |
2.XMLMapperBuilder解析(parse)
1 | --> XMLIncludeTransformer |
经过该调用链将xml字符串转为SqlNode对象,并缓存到Configuration中