浅析Mybatis三种执行器

1、哪三种执行器

package org.apache.ibatis.session;

public enum ExecutorType {
    SIMPLE,  //默认
    REUSE,  //复用
    BATCH; //批量

    private ExecutorType() {
    }
}

从枚举类ExecutorType可以看出三种执行器;
第一个问题:为什么枚举类必须私有化构造器?

  • 唯一性:防止实例化造成命名冲突,统一由JVM加载的时候,实例化枚举对象
  • 将枚举类设计成单例,因为他的值是固定的,不需要发生改变

2、三种执行器分别干什么

  • SIMPLE:
    默认执行器,对sql语句进行预编译、设置参数、执行等操作
  • REUSE:
    复用执行器,执行器会重用预处理语句(PreparedStatement)
  • BATCH:
    批量执行器,不仅重用预处理语句,还批量处理

3、三种执行器怎么指定

使用mybatis会创建封装了sql操作的sqlSession对象

//指定SIMPLE
SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.SIMPLE);

--------------------------------------------------------------------------

//指定REUSE
SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.REUSE);

--------------------------------------------------------------------------
//指定BATCH
SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH);

//BATCH批量操作需要自动提交
sqlSession.commit();


4、三种执行器各自优势

第二个问题:插入100条相同格式数据(同一条sql语句),三种执行器执行特色?

减少码字:
这里定义表格中”操作“代表”预编译、设置sql语句参数、执行sql插入操作“

执行器特色
SIMPLE每次插入都会执行”操作“中所有操作
REUSE第一次插入会执行”操作“中的预编译,然后每步都要执行”操作“中的赋值与插入
BATCH第一次插入会执行”操作“中的预编译,每步只用执行”操作“中的赋值,最后统一执行
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

蓝桉未与

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值