JdbcBatchItemWriter 如何决定批量大小?

How does the JdbcBatchItemWriter decide the batch size?

我正在浏览 JdbcBatchItemWriter 的文档,但注意到无法指定 batch-size 用于 jdbcTemplate被这个 class 使用。我认为其中名称为 Batch 的 class 会有一些机制来指定批量大小,但看起来并非如此。我现在有以下关于确定批量大小的问题:

  1. 批量大小是否等于提交间隔?
  2. 如果不是,批量大小是否由框架自动计算?

最后但同样重要的是,有没有办法明确指定 jdbcTemplate[= 使用的批量大小 31=] in the JdbcBatchItemWriter while defining the bean for the JdbcBatchItemWriter class?

提交(或批量大小)将包括块中的所有项目,该块由 commit-interval 控制。因此,出于所有意图和目的,您可以将提交间隔视为批量大小。

对上述陈述的一个警告:您的最终块的项目可能少于您的提交间隔。此外,如果您使用 ItemProcessor 过滤任何记录,则传递给您的 Writer 的项目数将低于您的提交间隔。最后,还有一些自定义 CompletionPolicy 场景可能会导致提交的项目比您的提交间隔多(或少)。

希望对您有所帮助!