Mybatis都有哪些Executor执行器?它们之间的区别是什么?

本文详细介绍了MyBatis中的SimpleExecutor、ReuseExecutor和BatchExecutor三种Executor执行器的工作原理、优缺点及适用场景,强调了批处理执行器在提高性能方面的优势。
摘要由CSDN通过智能技术生成

MyBatis 中有三种主要的 Executor 执行器,它们分别是:

  1. SimpleExecutor: 简单执行器。每执行一次 update 或 select,就开启一个 Statement 对象,用完立刻关闭 Statement 对象。

  2. ReuseExecutor: 可重用执行器。执行 update 或 select,以 SQL 作为 key 查找 Statement 对象,存在则使用,不存在则创建。用完后不关闭 Statement 对象,而是放置于 Map 内等待下一次使用。简言之,重复使用 Statement 对象。

  3. BatchExecutor: 批处理执行器。执行 update(insert、update、delete)操作时,将所有 SQL 都添加到批处理中(addBatch()),等待统一执行(executeBatch())。在执行过程中,将所有 SQL 与预编译参数(PreparedStatement)等存放在一个集合中,统一执行。相对于简单执行器和可重用执行器,批处理执行器的效率更高。

这三种 Executor 执行器的主要区别在于对 Statement 对象的处理方式:

  • SimpleExecutor: 每次执行都会创建一个新的 Statement 对象,用完即关闭,适用于对数据库连接占用不大的场景,但性能较低。

  • ReuseExecutor: 将 Statement 对象缓存起来,下次执行相同的 SQL 时可以重复使用,减少了创建和关闭 Statement 对象的开销,适用于频繁执行相同 SQL 的场景,提高了性能。

  • BatchExecutor: 将多个 SQL 语句放入批处理中一次性执行,减少了与数据库的交互次数,适用于批量操作数据的场景,能够显著提高性能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值