如何使用自定义ItemReader实现块处理

时间:2013-11-20 11:13:11

标签: spring spring-batch

我正在使用Spring批处理2.1.9.RELEASE

我需要配置一个作业步骤,它从Mysql DB读取数据,处理它并写回Mysql。我想以大块的方式来做。

我考虑过使用JdbcCursorItemReader但SQL很复杂。我需要从其他三个表中获取数据,以创建在读者中使用的实际SQL。

但是,如果我使用customItemReaderJdbcTemplate / NamedParameterJdbcTemplate,我怎样才能确保步骤处理数据块中的数据?我没有使用JPA / DAO。

非常感谢,

1 个答案:

答案 0 :(得分:1)

在Spring中,批处理数据通常作为块处理;简单的方法是在步骤定义中声明commit-interval;见Configuring a step

定义自定义块策略的另一种方法是实现自己的CompletionPolicy

要回答您的问题,请使用Driving Query Based ItemReaders从主表中读取并构建复杂对象(从其他表中读取),定义commit-interval并使用标准读取/处理/写入步骤模式。 / p>

我希望我很清楚,英语不是我的语言。