如何使用Spring-Batch批量插入?

时间:2014-12-11 12:09:51

标签: java spring hibernate spring-batch spring-data-jpa

我使用spring-batch和spring-data-jpa来读取大型csv数据文件,并使用hibernate将这些条目保存(或更新现有)条目到postgresql数据库。

如何配置弹簧以使用批量/批量插入?

配置作业step时,我会相应地设置chunk尺寸:

StepBuilderFactory step;
step.chunk(10000).reader(csvReader).writer(jpaItemWriter).build();

我是否还需要关注hibernate.jdbc.batch_size财产?我是否也必须设置它,可能与块大小相同?

2 个答案:

答案 0 :(得分:0)

当您设置块大小时,您的阅读器将以指定的块发送数据到编写器。所以块大小决定了弹簧批量中db的实际批量更新。

我不认为batch_size很重要,因为您已针对特定步骤设置了特定块大小的作业。

答案 1 :(得分:0)

在写入数据库时​​,还需要使用批量更新查询。 Google JDBC Bulk updates了解详细信息 - 因此,根据您执行JDBC查询的方式,您需要使用相应的批量更新机制