Mybatis源码解读2-数据接口层的实现(2)

在第一篇文章中主要说了SQLSessionFactory 的创建过程(传送门:https://blog.****.net/java_java_girl/article/details/88842878),

SqlSession是Mybatis提供给开发人员的接口,通过这个接口开发人员进行对Mybatis进行操作

这个文章主要讲的是SqlSession这个东西,那先看一下这个SqlSession这个接口中的方法Mybatis源码解读2-数据接口层的实现(2)

从上边可以看出来的是这个接口中主要封装了数据库的基本操作增删改查以及我们对事务的操作的相关方法.

那我们主要看下他的两个实现类

Mybatis源码解读2-数据接口层的实现(2) 

这个SqlSessionManager在官方文档中已经被注明,这个类不被使用,所以,我们主要看下这个DefaultSqlSession.

 Mybatis源码解读2-数据接口层的实现(2)

在打开这个DefaultSqlSession中,我们主要看到了五个参数,那接下来我们主要看一下这五个参数

  1.  Configuration 这个参数主要是我们Mybatis中的核心配置文件,这个类是在我们创建SqlSessionFactory中加载出来的.
  2. executor是我们需要执行sql中的执行器.
  3. autoCommit是主要判断我们的事务是由jdbc控制还是由我们的关系型数据库进行控制
  4. dirty是我们Mybatis中的业务参数,是一个boolean类型的,他主要是在执行事务过程中,为false他就回滚,true就提交
  5. cursorList是我们sql执行完以后用于返回给我们结果的参数

那我们的SqlSession是怎么创建的,

Mybatis源码解读2-数据接口层的实现(2)

从我们的代码中可以看到是SqlSessionFactory直接创建出来的这个对象,我们打开这个openSession方法 

Mybatis源码解读2-数据接口层的实现(2)

从上边可以看到的是我们的都是通过方法重载方便开发人员 进行手动赋值或者自动赋值.

这里就是对SqlSession的简单介绍了.