【发布时间】:2020-03-16 20:31:52
【问题描述】:
Spring Batch 文档中有一个示例 (https://docs.spring.io/spring-batch/docs/4.2.x/reference/html/readersAndWriters.html#cursorBasedItemReaders)
public ItemReader<RevertedBillCredit> verifyCreditReader() {
JdbcCursorItemReader itemReader = new JdbcCursorItemReader();
itemReader.setDataSource(dataSource);
itemReader.setSql("SELECT ID, NAME, CREDIT from CUSTOMER");
itemReader.setRowMapper(new CustomerCreditRowMapper());
int counter = 0;
ExecutionContext executionContext = new ExecutionContext();
itemReader.open(executionContext);
Object customerCredit = new Object();
while(customerCredit != null){
customerCredit = itemReader.read();
counter++;
}
itemReader.close();
}
我发现有些文档说 JdbcCursorItemReader 查询后会自动关闭连接。但是,为什么我们需要 itemReader.close() 呢? JdbcCursorItemReader 是否必须手动关闭连接?
【问题讨论】:
-
你没有,而且你的
JdbcCursorItemReader的使用很奇怪。您通常不会自己阅读,而是让 Spring Batch 做到这一点。关闭也没有意义。所以我不确定你想在这里做什么。
标签: spring spring-batch