版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011676300/article/details/82912388
前言
org.apache.ibatis.session.SqlSession
使用 MyBatis 的主要 Java 接口就是 SqlSession。你可以通过这个接口来执行命令,获取映射器和管理事务。我们会概括讨论一下 SqlSession 本身,但是首先我们还是要了解如何获取一个 SqlSession 实例。SqlSessions 是由 SqlSessionFactory 实例创建的。SqlSessionFactory 对象包含创建 SqlSession 实例的所有方法。而 SqlSessionFactory 本身是由 SqlSessionFactoryBuilder 创建的,它可以从 XML、注解或手动配置 Java 代码来创建 SqlSessionFactory。
继承体系
SqlSession实现类有两个DefaultSqlSession和SqlSessionManager,本文章只讲DefaultSqlSession
源码阅读
私有属性
//配置类
private final Configuration configuration;
//执行器
private final Executor executor;
//是否自动提交
private final boolean autoCommit;
//和autoCommit功能相反
private boolean dirty;
private List<Cursor<?>> cursorList;
构造器
public DefaultSqlSession(Configuration configuration, Executor executor, boolean autoCommit) {
this.configuration = configuration;
this.executor = executor;
this.dirty = false;
this.autoCommit = autoCommit;
}
public DefaultSqlSession(Configuration configuration, Executor executor) {
this(configuration, executor, false);
}