JdbcBatchItemWriter 如何决定批量大小?
How does the JdbcBatchItemWriter decide the batch size?
我正在浏览 JdbcBatchItemWriter 的文档,但注意到无法指定 batch-size 用于 jdbcTemplate
被这个 class 使用。我认为其中名称为 Batch
的 class 会有一些机制来指定批量大小,但看起来并非如此。我现在有以下关于确定批量大小的问题:
- 批量大小是否等于提交间隔?
- 如果不是,批量大小是否由框架自动计算?
最后但同样重要的是,有没有办法明确指定 jdbcTemplate
[= 使用的批量大小 31=] in the JdbcBatchItemWriter
while defining the bean for the JdbcBatchItemWriter
class?
提交(或批量大小)将包括块中的所有项目,该块由 commit-interval
控制。因此,出于所有意图和目的,您可以将提交间隔视为批量大小。
对上述陈述的一个警告:您的最终块的项目可能少于您的提交间隔。此外,如果您使用 ItemProcessor 过滤任何记录,则传递给您的 Writer 的项目数将低于您的提交间隔。最后,还有一些自定义 CompletionPolicy
场景可能会导致提交的项目比您的提交间隔多(或少)。
希望对您有所帮助!
我正在浏览 JdbcBatchItemWriter 的文档,但注意到无法指定 batch-size 用于 jdbcTemplate
被这个 class 使用。我认为其中名称为 Batch
的 class 会有一些机制来指定批量大小,但看起来并非如此。我现在有以下关于确定批量大小的问题:
- 批量大小是否等于提交间隔?
- 如果不是,批量大小是否由框架自动计算?
最后但同样重要的是,有没有办法明确指定 jdbcTemplate
[= 使用的批量大小 31=] in the JdbcBatchItemWriter
while defining the bean for the JdbcBatchItemWriter
class?
提交(或批量大小)将包括块中的所有项目,该块由 commit-interval
控制。因此,出于所有意图和目的,您可以将提交间隔视为批量大小。
对上述陈述的一个警告:您的最终块的项目可能少于您的提交间隔。此外,如果您使用 ItemProcessor 过滤任何记录,则传递给您的 Writer 的项目数将低于您的提交间隔。最后,还有一些自定义 CompletionPolicy
场景可能会导致提交的项目比您的提交间隔多(或少)。
希望对您有所帮助!