List of usage examples for org.springframework.batch.item.database JdbcCursorItemReader setPreparedStatementSetter
public void setPreparedStatementSetter(PreparedStatementSetter preparedStatementSetter)
From source file:info.raack.appliancelabeler.data.JDBCDatabase.java
@Override public ItemReader<SecondData> getEnergyMeasurementReaderForMonitor(EnergyMonitor energyMonitor, Date start, Date end, int ticks) { EnergyMeasurementQueryItems items = getEnergyMeasurementQueryItems(energyMonitor, start, end, ticks); JdbcCursorItemReader<SecondData> dataReader = new JdbcCursorItemReader<SecondData>(); dataReader.setDataSource(dataSource); dataReader.setRowMapper(secondDataRowMapper); // crucial if using mysql to ensure that results are streamed dataReader.setFetchSize(Integer.MIN_VALUE); dataReader.setVerifyCursorPosition(false); ParsedSql parsedSql = NamedParameterUtils.parseSqlStatement(items.sql); String sql = NamedParameterUtils.substituteNamedParameters(parsedSql, items.parameters); ListPreparedStatementSetter listPreparedStatementSetter = new ListPreparedStatementSetter(); listPreparedStatementSetter.setParameters( Arrays.asList(NamedParameterUtils.buildValueArray(parsedSql, items.parameters, null))); dataReader.setPreparedStatementSetter(listPreparedStatementSetter); dataReader.setSql(sql);/* ww w . j a v a 2 s . co m*/ ExecutionContext executionContext = new ExecutionContext(); dataReader.open(executionContext); return new SpringItemReaderAdapter<SecondData>(dataReader); }