SqlSessionFactoryBuilder

public class SqlSessionFactoryBuilder {

  //Reader读取mybatis配置文件,传入构造方法
  //除了Reader外,其实还有对应的inputStream作为参数的构造方法,
  //这也体现了mybatis配置的灵活性
  public SqlSessionFactory build(Reader reader) {
    return build(reader, null, null);
  }

  public SqlSessionFactory build(Reader reader, String environment) {
    return build(reader, environment, null);
  }
  
  //mybatis配置文件 + properties, 此时mybatis配置文件中可以不配置properties,也能使用${}形式
  public SqlSessionFactory build(Reader reader, Properties properties) {
    return build(reader, null, properties);
  }
  
  //通过XMLConfigBuilder解析mybatis配置,然后创建SqlSessionFactory对象
  public SqlSessionFactory build(Reader reader, String environment, Properties properties) {
    try {
      XMLConfigBuilder parser = new XMLConfigBuilder(reader, environment, properties);
      //下面看看这个方法的源码
      return build(parser.parse());
    } catch (Exception e) {
      throw ExceptionFactory.wrapException("Error building SqlSession.", e);
    } finally {
      ErrorContext.instance().reset();
      try {
        reader.close();
      } catch (IOException e) {
        // Intentionally ignore. Prefer previous error.
      }
    }
  }

  public SqlSessionFactory build(Configuration config) {
    return new DefaultSqlSessionFactory(config);
  }

}


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 很久没有在6点多的早晨,搭公交,离开医院的时候是6点50,想犒劳自己来一顿早餐,于是坐了公交一站到了kfc . 还...
    陈大乖的空间阅读 172评论 1 0
  • 下午下班前的一个小时,黑压压的云加上闪电雷鸣,看微信圈很多地方下起了冰雹,但是这里的雨下的刚刚好,我下班、孩子放学...
    明懿妈妈阅读 194评论 0 0
  • 我最大的问题就是想的太多,认为会这样或者那样,但结果确不是这样或者那样……去做,而不要过多思考……
    果肥肥阅读 206评论 0 0
  • 爱情是我们人生中必须要面对,也是人们经常讨论的一个话题。但是爱情的真正的本质是什么?什么才算是真正的爱?爱一个人的...
    上善若水在路上阅读 235评论 2 1