根据该document,它指出在“面向块的”处理中,读取器的读取量等于“提交间隔”的量。
我想知道是否所有开箱即用的读者都遵循相同的原则。
假设对于JdbcCursorItemReader,这是否表示它根据给定的SQL语句选择了“仅前一百个”(提交间隔= 100),还是首先选择了所有数据并按提交间隔逐块处理量?

我们将非常感谢有助于澄清的文件!谢谢!

最佳答案

项读取器不知道块大小。面向块的步骤控制着何时调用项目读取器以获取下一个项目,直到创建块或数据源用尽(项目读取器返回null)为止。


  假设对于JdbcCursorItemReader,这是否表明它根据给定的SQL语句选择了“仅前一百个”(提交间隔= 100),还是首先选择了所有数据并按提交间隔量逐块处理?


如果将commit-interval(或chunkSize)设置为100,则JdbcCursorItemReader不会读取前100个项目或不选择所有数据,它实际上会读取fetchSize个项目。在chunkSize=100的示例中,如果fetchSize=10,则JdbcCursorItemReader将针对每个块对数据库执行10个查询。

我希望这可以澄清这些参数之间的关系。

08-17 11:18