我想使用一个JdbcCursorItemReader从数据库中读取数据, 此ItemReder的主要sql查询类似于:
Select
TABLE1.col1,
TMP_TABLE.num1,
TABLE1.col2
From
TABLE1, TMP_TABLE
WHERE -- some conditions
这里的问题是TMP_TABLE中的数据必须在执行此主查询之前插入,并且也应在之后删除。
使用以下查询插入数据(我希望在打开游标之前运行该查询):
insert into TMP_TABLE (NUM1) value (:x);
insert into TMP_TABLE (NUM2) value (:y);
使用类似查询的数据删除数据(我希望在关闭光标后运行此查询):
delete from TMP_TABLE
使用JdbcCursorItemReader有什么方法吗?
答案 0 :(得分:0)
使用StepExecutionListener
处理此问题。您可以使用StepExecutionListener#beforeStep()
方法填充数据,并使用StepExecutionListener#afterStep()
方法删除数据。您可以在以下文档中了解有关此侦听器的更多信息:https://docs.spring.io/spring-batch/4.0.x/reference/html/step.html#stepExecutionListener