mybatis 源码学习(一)配置文件初始化
mybatis是项目中常用到的持久层框架,今天我们学习下mybatis,随便找一个例子可以看到通过读取配置文件建立SqlSessionFactory,然后在build拿到关键的sqlsession,这是我从网上随便找了下例子,
关键的方法在于new SqlSessionFactoryBuilder().build(reader);
可以看到parser.parse() 返回的结果是Configuration ,而mybatis所有的配置文件初始化在这个类里面,这个是很关键的类。
这里可以看到读取configuration节点,我们知道configuration节点里面有数据源的配置以及xml文件的所在包或者路径。
这里是初始化mappers文件
拿到resource路径进行解析,
从到这里是不是很熟悉,解析xml文件
读取出来insert 、select 、 update 、delete节点。
看到这个应该知道了,
Map<String, NodeHandler> map = new HashMap<String, NodeHandler>(); map.put("trim", new TrimHandler()); map.put("where", new WhereHandler()); map.put("set", new SetHandler()); map.put("foreach", new ForEachHandler()); map.put("if", new IfHandler()); map.put("choose", new ChooseHandler()); map.put("when", new IfHandler()); map.put("otherwise", new OtherwiseHandler()); map.put("bind", new BindHandler());
不同的标签实现不同的类来组装 sql.
最后把初始化的配置数据放到MappedStatement中。
最后的重头戏来了。
看把成功赋值的MappedStatement再次放到configuration中。
上一篇: Mybatis框架3
推荐阅读
-
PHP网页游戏学习之Xnova(ogame)源码解读(一)
-
基于Spring注解的上下文初始化过程源码解析(一)
-
Mybaits 源码解析 (十二)----- Mybatis的事务如何被Spring管理?Mybatis和Spring事务中用的Connection是同一个吗?
-
Spring MVC源码(一) ----- 启动过程与组件初始化
-
Mybaits 源码解析 (十)----- 全网最详细,没有之一:Spring-Mybatis框架使用与源码解析
-
MyBatis学习总结(二)——MyBatis核心配置文件与输入输出映射
-
Vue源码学习一
-
angular源码学习第一篇 setupModuleLoader方法
-
深入学习Mybatis框架(一)- 入门
-
MyBatis学习总结(一)——ORM概要与MyBatis快速起步