Example usage for org.springframework.batch.item.database JdbcCursorItemReader setPreparedStatementSetter

List of usage examples for org.springframework.batch.item.database JdbcCursorItemReader setPreparedStatementSetter

Introduction

In this page you can find the example usage for org.springframework.batch.item.database JdbcCursorItemReader setPreparedStatementSetter.

Prototype

public void setPreparedStatementSetter(PreparedStatementSetter preparedStatementSetter) 

Source Link

Document

Set the PreparedStatementSetter to use if any parameter values that need to be set in the supplied query.

Usage

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);
}