Configuration: MyBatis在运行期的基本上所有的数据都会汇总到这个类。它的初始数据是来自开发人员配置在configuration的xml配置文件
MyBatis允许用户的自定义插件可以拦截ParameterHandler,ResultSetHandler,StatementHandler,Executor接口,从而进行一些操作。
SqlSessionFactoryBuilder类(入口) 里的build方法 中调用XMLConfigBuilder类的parse方法进行配置文件的读取。
SqlSessionFactoryBuilder类 入口代码: 创建SqlSessionFactory对象
public SqlSessionFactory build(Reader reader, String environment, Properties properties) {
try {
XMLConfigBuilder parser = new XMLConfigBuilder(reader, environment, properties);
return build(parser.parse());
} catch (Exception e) {
throw ExceptionFactory.wrapException("Error building SqlSession.", e);
} finally {
ErrorContext.instance().reset();
try {
reader.close();
} catch (IOException e) {
// Intentionally ignore. Prefer previous error.
}
}
}
parser.parse()方法用于读取mapping中的配置文件内容。
XMLConfigBuilder parser = new XMLConfigBuilder(reader, environment, properties); 构造方法中调用 super(new Configuration()); Configuration()构造方法 如下:
private XMLConfigBuilder(XPathParser parser, String environment, Properties props) {
super(new Configuration());
ErrorContext.instance().resource("SQL Mapper Configuration");
this.configuration.setVariables(props);
this.parsed = false;
this.environment = environment;
this.parser = parser;
}
关键方法:SqlSession中的getMapper方法. 桥梁作用,通过java动态代理实现。。(SqlSession有一个重要的方法getMapper,顾名思义,这个方式是用来获取Mapper对象的。什么是Mapper对象?根据Mybatis的官方手册,应用程序除了要初始并启动Mybatis之外,还需要定义一些接口,接口里定义访问数据库的方法,存放接口的包路径下需要放置同名的XML配置文件。SqlSession的getMapper方法是联系应用程序和Mybatis纽带,应用程序访问getMapper时,Mybatis会根据传入的接口类型和对应的XML配置文件生成一个代理对象,这个代理对象就叫Mapper对象。应用程序获得Mapper对象后,就应该通过这个Mapper对象来访问Mybatis的SqlSession对象,这样就达到里插入到Mybatis流程的目的。)
相关推荐
MyBatis源码分析.pdf
适合学习mybatis源码的各位同学,搜集不易,多多支持
以maven项目呈现,内容包含mybatis入门学习与源码学习代码,还有一些笔记辅以理解。适合mybatis初学者与进阶者。
5套完整springboot+mybatis源码下载只供学习之用,一套登录,一套权限,一套博客,一套.....
mybatis源码学习代码
MyBatis源码学习环境:均已附上注释 传统方式 mapper代理方式 mybatis二级缓存效果测试 mybatis嵌套效果测试 可连接自己的本地数据库进行测试练习 已通过测试代码模拟MyBatis的执行流程
Mybatis源码学习加注释,方便学习 Mybatis源码学习加注释,方便学习 Mybatis源码学习加注释,方便学习 Mybatis源码学习加注释,方便学习 Mybatis源码学习加注释,方便学习 ...
刚开始学习mybatis的童鞋们注意了,查看mybatis源码,深入了解mybatis很有用哦
Spring整合Mybatis源码解析
给大家分享一套课程,Java架构师之源码分析专题SpringBoot2.x、Spring5、SpringMVC、Mybatis源码分析,希望对大家学习有帮助。
用于学习mybatis源码的一个例子;结合idea的debug工具查看mybatis的运行原理
Mybatis系列学习源码 详细学习系列请参考http://www.cnblogs.com/daviddai/p/3485574.html
MyBatis 中文注释源码,直接导入eclipse工程即可,源码中加了中文注释,可以学习研究底层,成就自我成长!
这是一个java+springMVC+Mybatis源码包,可以供刚刚学习java框架的朋友们学习参考
关于mybatis的源码,里面部分注释,对于学习mybatis很有帮助
mybatis源码文件,源码中有中文注释,方便理解,有各种test方法,方便直接debug进行代码跟踪,对于学习源码的伙伴有相当大的帮助,适用于想理解mybatis源码的小伙伴。是不可多得的可以各个方法跟踪并且有中文注释的...
核心代码中文注释齐全,十分适合源码学习。在源代码文件中搜索“ #mark”,即可找出所有中文注释。注释示例: /** * #mark 配置解析入口 #20170821 * http://www.mybatis.org/mybatis-3/zh/configuration.html *...
SpringBoot+Mybatis demo源码学习 SpringBoot+Mybatis demo源码学习
Spring Boot+Mybatis+Maven 整合项目,可供学习,教程地址https://blog.csdn.net/qq_33768099/article/details/79787215
尚硅谷MyBatis视频教程(源码级讲授的MyBatis视频)-JAVA学习