如何去除Windows系统中的不受欢迎的CMS?
摘要:做网站好用的cms,删除windows wordpress,腾讯域名,无锡网站营销推广前言: 前文我们从源码层面梳理了 SqlSessionFactory 的创建过程,本篇我们继续
做网站好用的cms,删除windows wordpress,腾讯域名,无锡网站营销推广前言#xff1a;
前文我们从源码层面梳理了 SqlSessionFactory 的创建过程#xff0c;本篇我们继续分析一下 SqlSession 的获取过程。
初识 MyBatis 【MyBatis 核心概念】
案例代码#xff1a;
public class MyBatisTest {Testpublic void test() throws IOException {/…前言
前文我们从源码层面梳理了 SqlSessionFactory 的创建过程本篇我们继续分析一下 SqlSession 的获取过程。
初识 MyBatis 【MyBatis 核心概念】
案例代码
public class MyBatisTest {Testpublic void test() throws IOException {//读取配置文件InputStream is Resources.getResourceAsStream(mybatis-config.xml);//创建 SqlSessionFactoryBuilder 对象SqlSessionFactoryBuilder builder new SqlSessionFactoryBuilder();//通过 SqlSessionBuilder 对象 解析 mybatis-config.xml 文件 构建一个SqlSessionFactory SqlSessionFactory sqlSessionFactory builder.build(is);//通过SqlSessionFactory构建一个SqlSessionSqlSession session sqlSessionFactory.openSession();//通过SqlSession 获取 Mapper 实例UserMapper userMapper session.getMapper(UserMapper.class);//获取数据ListUser users userMapper.findAll();//打印输出for (User user : users) {System.out.println(user);}//关闭资源session.close();is.close();}
}本篇我们将主要对 sqlSessionFactory.openSession() 这句代码进行分析。
获取 SqlSession 源码分析
DefaultSqlSessionFactory#openSession 方法源码分析
DefaultSqlSessionFactory#openSession 方法只是调用了 DefaultSqlSessionFactory#openSessionFromDataSource 方法并传入了默认的执行器类型、隔离级别、是否自动提交参数。
//org.apache.ibatis.session.defaults.DefaultSqlSessionFactory#openSession()
public SqlSession openSession() {//使用默认的执行器类型(默认是SIMPLE) 默认隔离级别 非自动提交 委托给 openSessionFromDataSource 方法return this.openSessionFromDataSource(this.configuration.getDefaultExecutorType(), (TransactionIsolationLevel)null, false);
}执行器类型
SIMPLE简单执行器 SimpleExecutor每执行一条 SQL都会打开一个 Statement执行完成后会关闭。REUSE重用执行器 ReuseExecutor其内部会缓存一个 MapString, Statement 每次编译完成的 Statement 都会进行缓存不会关闭可以重复使用。BATCH批量执行器基于 JDBC 的 addBatch、executeBatch 功能只能作用于 insert、update、delete 语句。CachingExecutor缓存执行器使用了装饰器模式在开启缓存的时候会在上面三种执行器上包装一层 CachingExecutor。
