【发布时间】:2018-07-20 03:04:24
【问题描述】:
我正在编写一个 Spring 批处理应用程序:
- 到
read多个csv文件数据 - 对数据做一些
process - 然后
write到 sql server 数据库
我有一个存储过程,它接受输入数据、价格、营业结束日期和安全 ID。如果记录已经存在,则过程UPDATE,如果不存在则INSERT。
我想在我的insert() 方法中调用这个存储过程,见下文:
@Slf4j
public class PriceWriter implements ItemWriter<Price> {
private final PriceDAO pd;
public PriceDAO(PriceDAO pd) {
this.pd = pd;
}
@Override
public void write(List<? extends Price> items) throws Exception {
log.info("Ready to write {} items " + items.size());
pd.insert(items);
}
}
@Repository
public class PriceDAOImpl implements PriceDAO {
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public void insert(List<? extends Price> prices) {
prices.forEach(e -> {
System.out.println("Calling Stored Procedure For Records: " + e.toString());
});
}
}
我看到的示例都是INSERT 语句,并且没有遇到在ItemWriterwrite() 的上下文中调用存储过程的任何地方。
我应该如何在 insert() 方法中调用我的存储过程,或者我应该如何在 Spring 批处理应用程序中调用存储过程?有人可以演示如何并举例说明吗?
【问题讨论】:
标签: java spring stored-procedures spring-batch spring-jdbc