Mybatis--SqlSession对象详解

Posted Z && Y

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis--SqlSession对象详解相关的知识,希望对你有一定的参考价值。

1. 了解SqlSessionFactory工厂类

在这里插入图片描述

每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为核心的。		
SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。而 
SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先配置的
Configuration 实例来构建出 SqlSessionFactory 实例。

2. SqlSession对象详解

Configuration conf // conf 是配置文件的配置信息

在这里插入图片描述

用户访问数据库是基于SqlSession的,用户去访问数据库的这个过程也叫做会话,一次会话就代表了一次连接。SqlSession都是由SqlSessionFactory生产出来的。

用户在访问数据库的时候,需要用到很多的配置信息
(比如数据库的url,用户名,密码,sql语句...)
这些信息都是从配置文件来的,这些配置信息都是加载到Configuration的
实例conf对象中,所以每次访问数据库都会去拿这个conf对象。
但是大家想一想,conf对象里面包含了大量的配置信息,有可能占用的内存比较大。
基于这样的考虑,Mybatis里面的conf对象是单例唯一的,当我们的SqlSession
需要去访问数据库,Myabtis肯定不会让它对重新实例化一次conf对象,
而是让它去引用 单例唯一的的conf对象的地址。
所以SqlSessionFactory在每生产一个SqlSession的时候,都会把
conf对象的地址传递过去。


以上是关于Mybatis--SqlSession对象详解的主要内容,如果未能解决你的问题,请参考以下文章

关于MyBatis sqlSession的一点整理

MyBatis:SqlSession及其工厂类的作用域和生命周期

mybatis sqlsession怎样设置超时时间

MyBatis(SqlSession)

spring如何管理mybatis ----- SqlSession的线程安全性

Spring Transaction + MyBatis SqlSession事务管理机制研究学习