JdbcBatchItemWriter如何确定批处理大小?

时间:2019-10-23 13:52:44

标签: java jdbc spring-batch batch-updates itemwriter

我正在浏览JdbcBatchItemWriter的文档,但是注意到无法指定 batch-size 用于此类使用的jdbcTemplate。我认为其中名称为Batch的类将具有某种机制来指定批处理大小,但事实并非如此。现在,我有以下关于批次大小确定的问题:

  1. 批处理大小是否等于commit-interval?
  2. 如果否,框架会自动计算批次大小吗?

最后但并非最不重要的是,有一种方法可以明确指定 jdbcTemplate 中要使用的批量大小JdbcBatchItemWriter类定义Bean时JdbcBatchItemWriter

1 个答案:

答案 0 :(得分:2)

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

需要注意的是,以上语句:最后一块的项目可能少于提交间隔。此外,如果您使用ItemProcessor过滤任何记录,则传递给Writer的项目数将少于您的提交间隔。最后,还有一些自定义CompletionPolicy方案可能会导致提交的项目比提交间隔多(或少于)。

希望有帮助!