SqlSession 的创建过程

一、SqlSessionFactoryBuilder

1、通过字符流的方式创建 SqlSessionFactory 。

         

2、通过字节流(InputStream)的方式构件 SqlSessionFacotry。

3、通过Configuration对象构建SqlSessionFactory。

总结:不管是字符流方式创建还是字节流的方式创建, 最终都会调用Configuration对象构建SqlSessionFactory。也就是第3种方式。我们发现调用的不是SqlSessionFactory,而是DefaultSqlSessionFactory 。这是为什么呢? 最终发现SqlSessionFactory是一个接口,它有两个实现类一个是DefaultSqlSessionFactory,另一个是SqlSessionManager。

二、DefaultSqlSessionFactory

扫描二维码关注公众号,回复: 2824955 查看本文章

下面来看 SqlSessionFactory 的实现类 DefaultSqlSessionFactory。

1、SqlSessionFactory 接口中的方法。

2.DefaultSqlSessionFactory 类中从数据源获取SqlSession 。

从Connection中获取SqlSession 。

总结:不管是从数据源中获取SqlSession 还是从 connection 中获取,最后都会调用 DefaultSqlSession 类来执行创建。那么为什么是DefaultSqlSession 而不是 SqlSession 类呢?因为SqlSession 是一个接口,DefaultSqlSession 实现了SqlSession 接口。

三、DefaultSqlSession 

下面来看 SqlSession 的实现类 DefaultSqlSession。

1、先来看SqlSession 中的方法,SqlSession 是执行器。

2、DefaultSqlSession 中的方法。

总结:通过sqlSession调用 相应的方法就可以执行 crud 操作了。到此 sqlSession 的创建过程就结束了。

猜你喜欢

转载自blog.csdn.net/qingtian211/article/details/81779296