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中。

 

最新文章

  1. NGINX引入线程池 性能提升9倍
  2. WindowsService 安装 cmd
  3. 用js计算从开始到结束时间之内的按周值选定
  4. kendo ui之grid列表
  5. spring源码分析之spring-core-io
  6. sendfile传输机制
  7. Gym 100650H Two Ends DFS+记忆化搜索
  8. NBUT 1635 Explosion(最小顶点覆盖)
  9. 【python cookbook】【字符串与文本】14.字符串连接及合并
  10. IOS 手绘地图导航
  11. Python学习笔记5-字符串、bool、数值操作和数组字典排序
  12. Dell-R730 【Pxe+dhcp+ftp+tftp+Kickstart+CentOs6.6】
  13. flex盒模型实现头部尾部固定
  14. easyUI前后台分页代码实现
  15. 带你深入理解STL之迭代器和Traits技法
  16. [摘译] IK: 操纵关节式物体的反向动力学和几何约束
  17. python基础之语句字符串
  18. mysql 5.7 安装
  19. python ssh之paramiko模块使用
  20. bigtable原理

热门文章

  1. Python9-进程-day36
  2. leetcode-11-dfs
  3. zookeeper安装、配置、使用
  4. 关于C#Debug和Release
  5. ubuntu12.04 ppa安装git
  6. JavaScript简单继承
  7. 忘记MySQL的root密码的解决方法
  8. bootstrap3兼容ie8浏览器
  9. Numpy ndarray 的高级索引存在 &quot;bug&quot; ?
  10. [python测试框架] http接口测试框架