Example usage for org.springframework.batch.item.database.support MySqlPagingQueryProvider MySqlPagingQueryProvider

List of usage examples for org.springframework.batch.item.database.support MySqlPagingQueryProvider MySqlPagingQueryProvider

Introduction

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

Prototype

MySqlPagingQueryProvider

Source Link

Usage

From source file:io.spring.batch.configuration.JobConfiguration.java

@Bean
@StepScope/*from   w  w  w  .  j av a 2s  . co m*/
public JdbcPagingItemReader<Customer> pagingItemReader(
        @Value("#{stepExecutionContext['minValue']}") Long minValue,
        @Value("#{stepExecutionContext['maxValue']}") Long maxValue) {
    System.out.println("reading " + minValue + " to " + maxValue);
    JdbcPagingItemReader<Customer> reader = new JdbcPagingItemReader<>();

    reader.setDataSource(this.dataSource);
    reader.setFetchSize(1000);
    reader.setRowMapper(new CustomerRowMapper());

    MySqlPagingQueryProvider queryProvider = new MySqlPagingQueryProvider();
    queryProvider.setSelectClause("id, firstName, lastName, birthdate");
    queryProvider.setFromClause("from customer");
    queryProvider.setWhereClause("where id >= " + minValue + " and id <= " + maxValue);

    Map<String, Order> sortKeys = new HashMap<>(1);

    sortKeys.put("id", Order.ASCENDING);

    queryProvider.setSortKeys(sortKeys);

    reader.setQueryProvider(queryProvider);

    return reader;
}