MyBatis初始化过程:创建Session 实例的过程

我们知道MyBatis的持久化操作离不开SqlSessionFactory对象,该对象由SqlSessionFactoryBuilde加载MyBatis的配置文件产生。SqlSessionFactory对象的openSession方法可以打开SqlSession对象。具体代码如下所示:

// 读取mybatis-config.xml 文件
Inputstream inputStream= Resources.getResourceAsStream("mybatis-config.xml");
// 初始化mybatis
// 创建SqlSessionFactory 类的实例
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
// 创建Session 实例
SqlSession session= sqlSessionFactory.openSession();

上述代码的功能是根据配置文件mybatis-config.xml,创建SqlSessionFactory 对象,然后产生SqlSession,执行SQL语句。而MyBatis的初始化就发生在第三句:

SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

现在就让我们看看第三句到底发生了什么。

MyBatis初始化基本过程:

SqlSessionFactoryBuilder根据传入的数据流生成Configuration对象,然后根据Configuration对象创建默认的SqlSessionFactory实例。

初始化的基本过程如下图所示:



由上图所示,我们可以得知MyBatis初始化要经过以下几步:
(1)调用SqlSessionFactoryBuiler对象的build(inputStream)方法。
(2)SqlSessionFactoryBuilder会根据输入流inputStream等信息创建XMLConfigBuilder对象。
(3)SqlSessionFactoryBuilder调用XMLConfigBuilder对象的parse()方法。
(4)XMLConfgBuilder对象解析XML配置文件返回Configuration对象。
(5)SqlSessionFactoryBuilder根据Configuration对象创建一个DefaultSessionFactory对象,供客户端使用。
(6)SqlSessionFactoryBuilder返回DefaultSessionFactory对象给客户端,由此可见,SqlSessionFactory是根据MyBatis的配置文件mybatis-config.xml创建的。


©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容