在Mybatis中,SqlSessionFactory是一个单例的对象,用于创建SqlSession,SqlSession是一个会话对象,用于和数据库进行交互。在Mybatis的源码中,SqlSessionFactoryBuilder是用来创建SqlSessionFactory的构建器,通过它来构建SqlSessionFactory对象。
SqlSessionFactoryBuilder的作用
SqlSessionFactoryBuilder的作用是通过配置文件或者Java代码的方式来构建SqlSessionFactory实例,从而创建SqlSession,并且对SqlSessionFactory的配置进行验证和设置。
SqlSessionFactory的创建过程
- 加载配置文件或者通过Java代码进行配置。
InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
-
解析配置文件,将各种配置信息解析成相应的对象,比如数据源、mapper文件等。
-
根据解析后的配置信息,创建SqlSessionFactory对象。
SqlSessionFactoryBuilder的源码解析
SqlSessionFactoryBuilder类的主要方法是build()方法,通过build()方法来创建SqlSessionFactory对象。在build()方法中会经过一系列的操作,包括解析配置、创建Configuration对象、初始化DefaultSqlSession的等操作。
public SqlSessionFactory build(InputStream inputStream) {
// 解析配置信息
XMLConfigBuilder parser = new XMLConfigBuilder(inputStream);
Configuration configuration = parser.parse();
// 创建SqlSessionFactory的实例
return build(configuration);
}
在build()方法中,会先通过XMLConfigBuilder来解析配置信息,然后将配置信息传入到build(Configuration configuration)方法中,再通过Configuration对象来创建SqlSessionFactory实例。
总结
通过对SqlSessionFactoryBuilder的源码解析,我们了解了SqlSessionFactory的创建过程,以及SqlSessionFactoryBuilder在其中的作用。SqlSessionFactoryBuilder是Mybatis中的一个重要构建器,通过它可以方便的创建SqlSessionFactory实例,从而构建SqlSession对象进行数据库操作。在实际使用中,我们可以根据自己的需求来配置SqlSessionFactoryBuilder,以满足不同的需求。
本文来自极简博客,作者:蓝色妖姬,转载请注明原文链接:Mybatis源码解析之SqlSessionFactoryBuilder的SessionFactory构建器