我正在编写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
语句都没有遇到ItemWriter
write()
上下文中调用存储过程的任何内容。
我应该如何在insert()
方法中调用我的存储过程,还是应该在Spring批处理应用程序中调用存储过程?有人可以用一个例子来证明吗?
答案 0 :(得分:0)
您可以执行任何操作来调用存储过程来存储数据。没有ItemWriter可以做到这一点但是,你可以采用两种方法: