mybatis(一) sqlSessionFactory和sqlSession的创建

本文探讨在SpringBoot环境下,基于Mapper接口使用MyBatis时SqlSessionFactory和SqlSession的创建过程。首先,通过SqlSessionFactoryBuilder的build方法创建SqlSessionFactory,核心是解析mybatis.xml和mapper.xml配置文件。接着,执行增删改查操作时,SqlSession在运行时由SqlSessionTemplate的代理方法sqlSessionProxy创建,并在DefaultSqlSessionFactory的openSessionFromDataSource方法中,通过configuration.newExecutor(tx, execType)创建Executor对象,该对象会被包装成拦截器链,体现了MyBatis的executor插件机制。" 123590217,6342962,SpringBoot refresh过程详解,"['SpringBoot', '源码解析', '学习']
摘要由CSDN通过智能技术生成

最近想深入学习一下mybatis,想通过看mybatis的源码,了解mybatis的整个工作流程,熟悉mybatis的各种细节。

使用mybatis的方式不同,sqlSessionFactory的创建方法也不同,具体可以看SqlSessionFactoryBuilder的源代码,里面有很多重载的build方法。本文是在SpringBoot环境下,基于mapper接口使用mybatis,在启动项目中的某个时间点会调用SqlSessionFactoryBuilder中的如下方法创建SqlSessionFactory:

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

这个方法需要一个Configuration类型的参数,所以需要先创建Configuration对象,虽然不同的build方法实现有不同,但是核心都是解析mybatis.xml配置文件和mapper.xml的配置文件。

 创建完sqlSessionFactory后,在具体执行增删改查的时候,还需要创建sqlSession

在使用mapper接口增删改查的方式中,sqlSession的创建是在执行增删改查的过程中,在sqlSession的代理方法中创建的。

如下:sqlSessionTemplate会调用sqlSessionProxy的一个代理方法


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值