MyBatis源码通~Executor

本文深入探讨MyBatis的Executor执行器,包括接口方法、初始化SqlSession过程、BaseExecutor与CachingExecutor的实现,以及SimpleExecutor、BatchExecutor和ReuseExecutor的区别。Executor在SqlSession中扮演关键角色,负责缓存、事务管理和数据库操作,通过StatementHandler执行具体SQL。BaseExecutor提供基本功能,CachingExecutor通过装饰器模式添加二级缓存。不同Executor如SimpleExecutor在每次查询后关闭Statement,而ReuseExecutor则缓存Statement以提高效率。
摘要由CSDN通过智能技术生成

SQL语句执行之Executor

  1. 在SqlSession(DefaultSqlSession)中持有一个Executor,用于真正发起sql执行。
  2. Executor 主要负责维护一级缓存和二级缓存,并提供事务管理的相关操作,它会将数据库相关操作委托给 StatementHandler完成。
    在这里插入图片描述

1、Executor接口方法

  • 读和写操作相关的方法
  • 事务相关的方法
  • 缓存相关的方法
  • 设置延迟加载的方法
  • 设置包装的 Executor 对象的方法
    在这里插入图片描述

2、初始化入口:创建SqlSession过程中

  • Mybatis初始化配置
//DefaultSqlSessionFactory
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader);
  • 创建SqlSession
//DefaultSqlSession
SqlSession sqlSession = factory.openSessionFromDataSource();

//--☆☆--创建SqlSession
private SqlSession openSessionFromDataSource(ExecutorType execType, TransactionIsolationLevel level, boolean autoCommit) {
   
    Transaction tx = null;
    try {
   
      final Environment environment = configuration
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只打杂的码农

你的鼓励是对我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值