我正在查看JdbcBatchItemWriter的文档,但注意到无法指定用于此类使用的jdbcTemplate
的批大小。我认为一个名为Batch
的类会有一些机制来指定批处理大小,但事实并非如此。我现在有以下关于确定批量大小的问题:
- 批量大小是否等于提交间隔
- 如果没有,批量大小是否由框架自动计算
最后但并非最不重要的是,在为JdbcBatchItemWriter
类定义bean时,是否有方法显式指定jdbcTemplate
在JdbcBatchItemWriter
中使用的批处理大小?
提交(或批量大小(将包括区块中的所有项目,区块由commit-interval
管理。因此,无论出于何种目的,您都可以将提交间隔视为批大小。
上面的语句需要注意的一点是:您的最后一个区块的项目可能比您的提交间隔少。此外,如果使用ItemProcessor筛选任何记录,则传递给Writer的项目数将低于提交间隔。最后,还有一些自定义的CompletionPolicy
场景可能会导致提交的项目比提交间隔多(或少(。
希望能有所帮助!