我試圖在spring批處理中將參數傳遞給我的查詢。我決定創建一個tasklet和使用的JdbcTemplate如下...在彈簧批處理中使用帶有命名參數的JdbcTemplate
public RepeatStatus execute(StepContribution stepContribution, ChunkContext chunkContext)
throws EpsilonBatchBusinessException {
LOGGER.debug("Enter execute.");
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
jdbcTemplate.query(queryString,
new PreparedStatementSetter() {
public void setValues(PreparedStatement preparedStatement) throws SQLException {
preparedStatement.setInt(1, runNumber);
}
},
rowMapper);
LOGGER.debug("Exit execute.");
return RepeatStatus.FINISHED;
}
所以我注入到這個bean的數據源,的queryString,RowMapper的對象,和參數(runNumber)。這微進程將內一個名爲一步創建一個列表。我通常會將行映射器傳遞給JdbcCursorItemReader spring bean,並且不會寫入tasklet,但是我的查詢字符串需要一個參數,因此我正在編寫此tasklet。我不確定這個tasklet是否會像JdbcCursorItemReader一樣執行這個技巧?您的輸入將不勝感激
thanks lckster;) – sonx 2012-03-06 16:02:14