XMLConfigBuilder 继承自BaseBuilder
public SqlSessionFactory build(InputStream inputStream, String environment, Properties props) {
try {
XMLConfigBuilder parser = new XMLConfigBuilder(inputStream, environment, props);
Configuration config = parser.parse();
return build(config);
} catch (Exception e) {
throw ExceptionFactory.wrapException("Error building SqlSession.", e);
} finally {
ErrorContext.instance().reset();
try {
inputStream.close();
} catch (IOException e) {
// Intentionally ignore. Prefer previous error.
}
}
}
XMLConfigBuilder 构造方法传递三个参数inputStream, environment, props
parse解析方法用来解析XML配置文件
public Configuration parse() {
if (parsed) {
throw new BuilderException("Each MapperConfigParser can only be used once.");
}
parsed = true;
parseConfiguration(parser.evalNode("/configuration"));
return configuration;
}
解析的配置文件如下:-->首先抓住根节点configuration
然后解析根节点之下的子节点方法如下:
private void parseConfiguration(XNode root) {
try {
//解析别名定义,使用了反射技术
typeAliasesElement(root.evalNode("typeAliases"));
//解析插件配置
pluginElement(root.evalNode("plugins"));
objectFactoryElement(root.evalNode("objectFactory"));
objectWrapperFactoryElement(root.evalNode("objectWrapperFactory"));
//解析属性文件配置
propertiesElement(root.evalNode("properties"));
settingsElement(root.evalNode("settings"));
//解析数据库配置信息environments下面可以包含多个environment,每个environments就是一个数据库连接池,通过ID进行唯一性区分
environmentsElement(root.evalNode("environments"));
typeHandlerElement(root.evalNode("typeHandlers"));
//解析SQL映射文件
mapperElement(root.evalNode("mappers"));
} catch (Exception e) {
throw new BuilderException("Error parsing SQL Mapper Configuration. Cause: " + e, e);
}
}
原创不易,欢迎打赏,请认准正确地址,谨防假冒
相关推荐
MyBatis源码分析.pdf
Mybatis源码分析主要分三部分: 1.使用案例讲解 2.Mybatis中用的所有设计模式讲解 3.源码分析
阿里巴巴P7架构师纯手工打造MyBatis源码——1小时解密底层源码.txt 需要更多往期录播资料可以联系我
5套完整springboot+mybatis源码下载只供学习之用,一套登录,一套权限,一套博客,一套.....
适合学习mybatis源码的各位同学,搜集不易,多多支持
一本小小的MyBatis源码分析书,内容详细介绍MyBatis源码!对于初中级java开发工程师是必备的!
阅读mybatis源码所记笔记。 基本: 1.数据源获取 2.mapper的sql语句获取 3.怎么去获得到的resultSet 重点: 1.orm是什么:体现于resultSet的数据库类型和java类型的转换 2.mybatis的一级缓存原理(简单的ifelse判断...
mybatis的源码分析视频,有详细的视频和文档。 视频地址亲测有效。失效了,请联系我。
mybatis源码包mybatis源码包mybatis源码包mybatis源码包
给大家分享一套课程,Java架构师之源码分析专题SpringBoot2.x、Spring5、SpringMVC、Mybatis源码分析,希望对大家学习有帮助。
Mybatis源码分析
mybatis核心源码mybatis核心源码mybatis核心源码mybatis核心源码mybatis核心源码mybatis核心源码mybatis核心源码mybatis核心源码mybatis核心源码mybatis核心源码mybatis核心源码mybatis核心源码mybatis核心源码...
mybatis中文文档和mybatis源码
MyBatis源码解析
刚开始学习mybatis的童鞋们注意了,查看mybatis源码,深入了解mybatis很有用哦
Spring整合Mybatis源码解析
mybatis源码阅读 配置 配置都在配置类 映射代理 映射器代理 3.3.1版本后ExecutorType为简单,重复使用批量插入可以正确返回生成主键 密钥生成器 useGeneratedKeys为true使用Jdbc3KeyGenerator selectKey节点使用...
mybatis源码
Spring boot Mybatis源码,只是单纯的分享给有需要的人使用,俗话说的好,万事开头难,当迈开了第一步,就相当于打开了一扇门,发现了新大陆,所以我们要持之以恒,才能取得成功,让我们一起努力,为心中最美好的...