Mybatis 中的 Executor

MyBatis框架提供了三种不同的 Executor 执行器实现,分别是 SimpleExecutor、 ReuseExecutor 和 BatchExecutor。它们之间的区别如下:

  1. SimpleExecutor(简单执行器):

    • 在每次执行数据库 update 或 select 操作时,都会创建一个新的 Statement 对象,并立即执行 SQL 语句。
    • 每次执行都会创建和关闭 Statement 对象,没有二级缓存的使用。
    • 适用于执行简单、临时性的 SQL 操作。
  2. ReuseExecutor(可重用执行器):

    • 在执行数据库 update 或 select 操作时,会重用已经存在的 Statement 对象。
    • 在多次执行相同的 SQL 语句时,不需要重复创建 Statement 对象,提高了性能。
    • 适用于执行相同 SQL 语句多次的场景,例如批量插入或更新。
  3. BatchExecutor(批量执行器):

    • 在执行数据库 update (没有select,JDBC批处理不支持select)操作时,会进行批量操作,减少了与数据库之间的通信次数。
    • 当一次性执行大量的相同 SQL 的批量操作时,可以显著提高性能。
    • 执行的 SQL 会批量提交到数据库,并在数据库中执行,可能存在一定的风险。
    • 适用于大批量的数据插入、更新或删除操作。

这三种执行器在处理 SQL 语句时的性能和效果略有不同,适用于不同的使用场景。SimpleExecutor 每次都会创建新的 Statement 对象,适合用于简单的 SQL 操作。ReuseExecutor 能够重用已存在的 Statement 对象,适合用于多次执行相同 SQL 语句的场景。BatchExecutor 适合执行大批量的相同 SQL 的操作,可以显著提高性能,但需要注意批量提交可能存在一定的风险。

可以在 MyBatis 的配置文件中选择合适的执行器,根据应用程序的需求和数据库操作的特点来选择合适的执行器类型。

Mybatis中如何指定使用哪一种Executor执行器?

  • 在Mybatis配置文件中,在设置(settings)可以指定默认的ExecutorType执行器类型,也可以手动给DefaultSqlSessionFactory的创建SqlSession的方法传递ExecutorType类型参数,如SqlSession openSession(ExecutorType execType)。
  • 配置默认的执行器。SIMPLE 就是普通的执行器;REUSE 执行器会重用预处理语句(prepared statements); BATCH 执行器将重用语句并执行批量更新。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值