mybatis SqlSessionFactory的创建过程

Posted 有上进心得程序员

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis SqlSessionFactory的创建过程相关的知识,希望对你有一定的参考价值。

1 InputStream rd = Resources.getResourceAsStream("db.xml");
2 SqlSessionFactory sf = new SqlSessionFactoryBuilder().build(rd);

 

可以看出,SqlSessionFactory是由SqlSessionFactoryBuilder类中的方法build创建的

一、SqlSessionFactoryBuilder类

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.
      }
    }
  }

 

实现的功能就是读取mybatis的配置文件,将并将其中的配置转化为configuration对象,然后调用DefaultSqlSessionFactory的构造方法,将其赋值给DefaultSqlSessionFactory中的configuration引用。 最后返回DefaultSqlSessionFactory对象。

 

以上是关于mybatis SqlSessionFactory的创建过程的主要内容,如果未能解决你的问题,请参考以下文章

京东大神笔记:23种设计模式,5大读源码方法,稳了!

报错java.lang.ClassNotFoundException: org.apache.ibatis.session.SqlSession

MyBatis学习总结-MyBatis快速入门的系列教程

Mybatis-Plus:了解Mybatis-Plus快速开始(Mybatis + Mybatis-Plus,Mybatis-Plus自动做了属性映射)

MyBatis1:MyBatis入门

MyBatis源码分析二MyBatis回顾