我是Spring Batch的新手。
我只想知道是否可以从Itemprocessor进行数据库调用(jdbccursoritemreader)?
我要求读取db(ItemReader),发送处理记录(ItemProcessor),在处理时我需要调用其他数据库(就像参考数据一样)来更新我从ItemReader获取的记录最后把最后的那些发给作家。
任何解决方法和建议都表示赞赏。
感谢。
答案 0 :(得分:0)
是的,你可以这样做。
您需要在处理器中注入一个类来为您执行数据库读取。为简单起见,我可能会使用JdbcTemplate。
这样的事情:
public class MyProcessor implements ItemProcessor<Foo, Bar> {
private JdbcTemplate jdbcTemplate;
@Override
public Foo process(Bar bar) throws Exception {
//use JdbcTemplate here
}
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
}
配置处理器时,请注入JdbcTemplate:
<bean class="com.example.MyProcessor" id="myProcessor">
<property name="jdbcTemplate" ref="jdbcTemplate"/>
</bean>