zoukankan      html  css  js  c++  java
  • 初看Mybatis 源码 (一)

    Mybatis 的使用,首先需要构建一个SqlSessionFactory 实例。而该实例可以通过SqlSessionFactoryBuilder来创建。

    String resource = "org/mybatis/example/Configuration.xml";
    Reader reader = Resources.getResourceAsReader(resource);
    SqlSessionFactory build = new SqlSessionFactoryBuilder().build(reader);

    这个是加载SqlSessionFactory的过程,下面来看看Resources类。Resources类定义了一系列加载配置文件的方法。

    image

    一般都是通过 ClassLoader 的几个方法来加载配置文件。getResource() getResourceAsStream()等等方法。如果是Properties文件。这可以通过Properties类加载inputStream 获得配置信息。

    下面来看看SqlSessionFactoryBuilder类:

    image

    采用工厂模式,分别根据不同的配置信息来构建SqlSessionFactory。这些builder方法最后归为两种处理,分别是从Reader中获取初始的配置信息,或者是从InputStream中获取配置信息。最后都是将输入流闯入XML解析类类XMLConfigBuilder类解析XML。得到一个Configuration 对象。用该对象生成一个DefaultSqlSessionFactory。

    new DefaultSqlSessionFactory(config)

     
    加载的配置文件包含如下内容:
     

    image

    分别解析并验证每个接点的属性。

  • 相关阅读:
    洛谷P2912 [USACO08OCT]牧场散步Pasture Walking [2017年7月计划 树上问题 01]
    洛谷P1082 同余方程 [2012NOIP提高组D2T1] [2017年6月计划 数论06]
    洛谷P2667 超级质数 [2017年6月计划 数论05]
    洛谷P1965 转圈游戏 [2013NOIP提高组 D1T1][2017年6月计划 数论04]
    洛谷P1595 信封问题
    洛谷P1062 数列 [2017年6月计划 数论03]
    洛谷P2835 刻录光盘 [2017年6月计划 强连通分量02]
    洛谷P2826 [USACO08NOV]光开关Light Switching [2017年6月计划 线段树02]
    【模板】矩阵快速幂 洛谷P2233 [HNOI2002]公交车路线
    【模板】ST表 洛谷P1816 忠诚
  • 原文地址:https://www.cnblogs.com/atio/p/3382737.html
Copyright © 2011-2022 走看看