Mybaits 源码解析 (四)----- SqlSession的创建过程
目录
正文
SqlSession是mybatis的核心接口之一,是myabtis接口层的主要组成部分,对外提供了mybatis常用的api。myabtis提供了两个SqlSesion接口的实现,常用的实现类是DefaultSqlSession。它相当于一个数据库连接对象,在一个SqlSession中可以执行多条SQL语句。
创建SqlSession
前面的两篇文章我们已经得到了SqlSessionFactory
,那么SqlSession
将由SqlSessionFactory
进行创建。
SqlSession sqlSession=sqlSessionFactory.openSession();
我们就来看看这个SqlSessionFactory
的 openSession
方法是如何创建SqlSession对象的。根据上面的分析,这里的SqlSessionFactory
类型对象其实是一个DefaultSqlSessionFactory
对象,因此,需要到DefaultSqlSessionFactory
类中去看openSession
方法。
@Override public SqlSession openSession() { return openSessionFromDataSource(configuration.getDefaultExecutorType(), null, false); }
调用了openSessionFromDataSource方法,并且第一个参数获取了默认的执行器类型,第二个参数为null,第三个参数为false,看看这个默认的执行器类型是啥
默认的执行器类型SIMPLE,我们跟进openSessionFromDataSource方法