我正在为我的项目使用Spring批处理解决方案。我有一种情况需要从文件中读取ID,对于那些我需要从数据库中提取数据,处理它然后将其写入输出文件的ID。
目前我使用FlatFileItemReader从文件中读取数据,然后在处理器中我收集它们并且每千个计数(在子句中有1000个限制)我点击数据库来收集那些ID的数据并使用Writer写输出。
但我觉得应该有更好的方法来做到这一点。如果我可以访问我正在访问的数据库,我可以将这些ID存储在临时表中以加入并获取输出。但我不能这样做。无论如何都要连接读者。
答案 0 :(得分:0)
我认为,如果要在步骤#2中简化读取器逻辑,则应该将步骤#1的输出传递到步骤#2或者将步骤#1的输出保持为中间存储,从而分两步设计工作。
第1步:由FlatFileItemReader
- >组成处理器。
第2步:数据库读取器 - >处理器 - >作家
按照您的问题描述,似乎您可以在 STEP#1 中添加一个编写器来写入临时/中间表。
此外,您似乎不需要 STEP#2 中的处理器。
STEP#1数据可以使用ExecutionContext
,See this和related question
此外,像这样的句子,但我不能那样做除非你为什么添加更多解释,否则没有帮助?