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

有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步,认准https://blog.zysicyj.top

全网最细面试题手册,支持艾宾浩斯记忆法。这是一份最全面、最详细、最高质量的 java面试题,不建议你死记硬背,只要每天复习一遍,有个大概印象就行了。 https://store.amazingmemo.com/chapterDetail/1685324709017001`

MyBatis 中的 Executor 执行器

MyBatis 提供了三种基本的 Executor 执行器,它们分别是:

SimpleExecutor

SimpleExecutor 是 MyBatis 中最基本的执行器。每次进行数据库操作,它都会创建一个新的 PreparedStatement 对象。它没有任何特殊的行为。

ReuseExecutor

ReuseExecutor 执行器会重用 PreparedStatement。如果两次执行的是相同的 SQL 语句,它会复用 PreparedStatement 对象,这样可以减少数据库和 JDBC 驱动的开销。

BatchExecutor

BatchExecutor 执行器会批量执行所有更新语句(包括 insertupdatedelete),直到提交或回滚操作发生。如果执行多个更新操作,使用 BatchExecutor 可以显著减少数据库访问次数,提高性能。

它们之间的区别

  • 创建 PreparedStatement 的方式不同SimpleExecutor 每次都新建,ReuseExecutor 会复用,而 BatchExecutor 会批处理。

  • 性能和适用场景不同SimpleExecutor 适用于一次性操作,ReuseExecutor 适合多次执行相同 SQL 语句的场景,BatchExecutor 适用于批量更新操作。

  • 资源消耗不同SimpleExecutor 可能会消耗更多的资源,因为它不进行任何优化;ReuseExecutorBatchExecutor 通过复用和批处理减少资源消耗。

在选择合适的执行器时,需要根据实际的业务场景和性能要求来决定。通常情况下,默认的 SimpleExecutor 足以应对大多数情况,但在特定场景下,选择 ReuseExecutorBatchExecutor 可以获得更好的性能表现。

最后更新于