java配置文件初始化_mybatis 源码学习(一)配置文件初始化

本文深入探讨MyBatis配置文件的初始化过程,关注于`SqlSessionFactoryBuilder.build(reader)`方法。解析`configuration`节点,涉及数据源配置及XML映射文件路径。解析过程中初始化Mappers,通过资源路径解析XML,提取insert、select、update、delete等节点。利用不同标签对应的处理类组装SQL,将初始化的MappedStatement存储到Configuration中,完成配置解析与Mapper的加载。
摘要由CSDN通过智能技术生成

fcb57e3cab4d4f3421b23ad5185ced96.png

关键的方法在于new SqlSessionFactoryBuilder().build(reader);

bcdd3896c6bdf9462d46d1cb460a4205.png

可以看到parser.parse() 返回的结果是Configuration ,而mybatis所有的配置文件初始化在这个类里面,这个是很关键的类。

a6d7953ad27e0f42af375bd960dca19b.png

这里可以看到读取configuration节点,我们知道configuration节点里面有数据源的配置以及xml文件的所在包或者路径。

a5b1ecb858bb4f7aeae67302127881f7.png

这里是初始化mappers文件

e570635ee9cd6b82edffb72414f24dd7.png拿到resource路径进行解析,

a6a69e0e0d16899c4fff3d402a0f1c1f.png从到这里是不是很熟悉,解析xml文件

f38eccaff62478f9b9b09e72c40ed72f.png

读取出来insert 、select 、 update 、delete节点。

a367b272fac55a8a31948a317457999f.png

4635d2d550c82183049b8b6706b723da.png

edc00b62aba1bd5d62a19e4ae8952fd1.png看到这个应该知道了,

Map map = new HashMap(); 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中。

44e006013c3894c1760087773ff2aa6b.png

最后的重头戏来了。

654c94c1bc8d3f9e2c676d30ed5d1903.png看把成功赋值的MappedStatement再次放到configuration中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值