/***
来自DefaultSqlSessionFactory类。
*/
@Override
public SqlSession openSession(boolean autoCommit) {
return openSessionFromDataSource(configuration.getDefaultExecutorType(), null, autoCommit);
}
private SqlSession openSessionFromDataSource(ExecutorType execType, TransactionIsolationLevel level, boolean autoCommit) {
Transaction tx = null;
try {
final Environment environment = configuration.getEnvironment();
final TransactionFactory transactionFactory = getTransactionFactoryFromEnvironment(environment);
tx = transactionFactory.newTransaction(environment.getDataSource(), level, autoCommit);
final Executor executor = configuration.newExecutor(tx, execType);
return new DefaultSqlSession(configuration, executor, autoCommit);
} catch (Exception e) {
closeTransaction(tx); // may have fetched a connection so lets call close()
throw ExceptionFactory.wrapExcepti
MyBatis源码的学习(8)---Executor执行器的的创建
最新推荐文章于 2022-05-11 22:52:28 发布
本文探讨了MyBatis的Executor执行器的创建过程,重点关注简单类型执行器及其使用PerpetualCache作为一级缓存的情况。CachingExecutor作为装饰器用于增强基本执行器的功能,当二级缓存禁用时,将不再使用CachingExecutor。
摘要由CSDN通过智能技术生成