码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2019-05-23 17:05:01      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:不同的   delete   otherwise   解析xml   shm   view   通过   class   lse   

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 源码学习(一)配置文件初始化

标签:不同的   delete   otherwise   解析xml   shm   view   通过   class   lse   

原文地址:https://www.cnblogs.com/manongyangjia/p/10912708.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!