我需要处理一个大文件并将其插入到Db中,并且不想花很多钱去做同样的事情。我知道我们可以使用apache commons API或缓冲的读取器以流模式读取行.... bt我希望以批处理模式插入DB中,例如1 go插入1000次插入,而不是1 by 1 ....正在读取文件逐行,添加到列表,计算大小,插入和刷新行列表是实现此目的的唯一选择?
答案 0 :(得分:1)
根据您的描述,Spring-Batch非常合适。
基本上,它使用chunk
概念来读取/处理/写入内容。顺便说一下,它可以是并发的。
@Bean
protected Step loadFeedDataToDbStep() {
return stepBuilder.get("load new fincon feed").<com.xxx.Group, FinconFeed>chunk(250)
.reader(itemReader(OVERRIDDEN_BY_EXPRESSION))
.processor(itemProcessor(OVERRIDDEN_BY_EXPRESSION, OVERRIDDEN_BY_EXPRESSION_DATE, OVERRIDDEN_BY_EXPRESSION))
.writer(itemWriter())
.listener(archiveListener())
.build();
}
您可以参考here