private String thisQuery = "SELECT count (*) FROM MYTABLE a WHERE a.TYPE_CD='THIS' AND a.CTGY_CD='2' WITH UR";
ItemWriter<ThisTable> ThisTableItemWriter(DataSource dataSource) {
return new JdbcBatchItemWriterBuilder<ThisTable>()
BeanPropertyItemSqlParameterSourceProvider<>())
.sql(thisQuery)
.assertUpdates(true)
.dataSource(dataSource)
.build();
}
我不知道为什么它问我一个perparedStatementSetter如果查询我传递没有占位符?(
我只是使用一个简单的选择查询来测试连接到DB
编写器不应该发出类型为SELECT
的查询。根据这里的代码:https://github.com/spring-projects/spring-batch/blob/f15edd414ada2c30ca136c243dbe0bb2fee447f3/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/JdbcBatchItemWriter.java#L142-L156,您应该通过namedParameterJdbcTemplate
或使用perparedStatementSetter
。在这方面,错误的措辞可能不准确。如果您认为这可以改进,您可以用一个最小的完整示例打开一个问题。