Example usage for org.springframework.batch.item.database JdbcPagingItemReader setRowMapper

List of usage examples for org.springframework.batch.item.database JdbcPagingItemReader setRowMapper

Introduction

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

Prototype

public void setRowMapper(RowMapper<T> rowMapper) 

Source Link

Document

The row mapper implementation to be used by this reader.

Usage

From source file:de.langmi.spring.batch.examples.readers.jdbc.JdbcPagingItemReaderTests.java

@Test
public void testWithoutFactory() throws Exception {
    // setup queryProvider
    HsqlPagingQueryProvider queryProvider = new HsqlPagingQueryProvider();
    queryProvider.setSelectClause("select ID, NAME");
    queryProvider.setFromClause("from TEST");
    queryProvider.setWhereClause("where NAME <> 'foo'");
    queryProvider.setSortKey("ID");
    // call init to imitate spring context startup behaviour
    queryProvider.init(dataSource);/*from  w ww .  j  a v a  2  s . c om*/

    // setup reader
    JdbcPagingItemReader<String> reader = new JdbcPagingItemReader<String>();
    reader.setDataSource(dataSource);
    reader.setQueryProvider(queryProvider);
    reader.setRowMapper(new ParameterizedRowMapper<String>() {

        @Override
        public String mapRow(ResultSet rs, int rowNum) throws SQLException {
            return rs.getString("NAME");
        }
    });
    reader.setPageSize(2);

    // needed call, normally done at spring application context startup
    reader.afterPropertiesSet();

    reader.open(MetaDataInstanceFactory.createStepExecution().getExecutionContext());
    // read
    try {
        int count = 0;
        String line;
        while ((line = reader.read()) != null) {
            assertEquals(String.valueOf(count), line);
            count++;
        }
        assertEquals(EXPECTED_COUNT, count);
    } catch (Exception e) {
        throw e;
    } finally {
        reader.close();
    }
}

From source file:de.langmi.spring.batch.examples.readers.jdbc.JdbcPagingItemReaderTests.java

@Test
public void testWithFactory() throws Exception {
    // setup queryProviderFactory
    SqlPagingQueryProviderFactoryBean factory = new SqlPagingQueryProviderFactoryBean();
    factory.setDataSource(dataSource);/*from   w  ww  . j  a v  a 2s.  com*/
    factory.setDatabaseType("HSQL");
    factory.setSelectClause("select ID, NAME");
    factory.setFromClause("from TEST");
    factory.setWhereClause("where NAME <> 'foo'");
    factory.setSortKey("ID");
    PagingQueryProvider queryProvider = (PagingQueryProvider) factory.getObject();
    // call init to imitate spring context startup behaviour        
    queryProvider.init(dataSource);

    // setup reader
    JdbcPagingItemReader<String> reader = new JdbcPagingItemReader<String>();
    reader.setDataSource(dataSource);
    reader.setQueryProvider(queryProvider);
    reader.setRowMapper(new ParameterizedRowMapper<String>() {

        @Override
        public String mapRow(ResultSet rs, int rowNum) throws SQLException {
            return rs.getString("NAME");
        }
    });
    reader.setPageSize(2);

    // needed call, normally done at spring application context startup
    reader.afterPropertiesSet();

    reader.open(MetaDataInstanceFactory.createStepExecution().getExecutionContext());
    // read
    try {
        int count = 0;
        String line;
        while ((line = reader.read()) != null) {
            assertEquals(String.valueOf(count), line);
            count++;
        }
        assertEquals(EXPECTED_COUNT, count);
    } catch (Exception e) {
        throw e;
    } finally {
        reader.close();
    }
}

From source file:nu.yona.server.batch.jobs.SendSystemMessageBatchJob.java

private JdbcPagingItemReader<UUID> createReader(
        final SqlPagingQueryProviderFactoryBean sqlPagingQueryProviderFactoryBean) {
    try {//from   w  w  w .j  a  v  a  2  s .  c  o  m
        JdbcPagingItemReader<UUID> reader = new JdbcPagingItemReader<>();
        reader.setQueryProvider(sqlPagingQueryProviderFactoryBean.getObject());
        reader.setDataSource(dataSource);
        reader.setPageSize(USERS_CHUNK_SIZE);
        reader.setRowMapper(singleUUIDColumnRowMapper());
        reader.afterPropertiesSet();
        reader.setSaveState(true);
        return reader;
    } catch (Exception e) {
        throw YonaException.unexpected(e);
    }
}

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

@Bean
@StepScope//  w ww  .  j av  a 2  s .c  o 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;
}

From source file:nu.yona.server.batch.jobs.ActivityAggregationBatchJob.java

private JdbcPagingItemReader<Long> createReader(Date cutOffDate, int chunkSize,
        SqlPagingQueryProviderFactoryBean sqlPagingQueryProviderFactoryBean) {
    try {/*from   www. ja  v a2  s .com*/
        JdbcPagingItemReader<Long> reader = new JdbcPagingItemReader<>();
        reader.setQueryProvider(sqlPagingQueryProviderFactoryBean.getObject());
        reader.setDataSource(dataSource);
        reader.setPageSize(chunkSize);
        reader.setRowMapper(SingleColumnRowMapper.newInstance(Long.class));
        reader.setParameterValues(Collections.singletonMap("cutOffDate", cutOffDate));
        reader.afterPropertiesSet();
        reader.setSaveState(true);
        return reader;
    } catch (Exception e) {
        throw YonaException.unexpected(e);
    }
}

From source file:uk.ac.kcl.batch.JobConfiguration.java

@Bean
@StepScope/*from  ww  w  .j  a va  2s  .  c o m*/
@Qualifier("documentItemReader")
@Profile("jdbc_in")
public ItemReader<Document> documentItemReader(@Value("#{stepExecutionContext[minValue]}") String minValue,
        @Value("#{stepExecutionContext[maxValue]}") String maxValue,
        @Value("#{stepExecutionContext[min_time_stamp]}") String minTimeStamp,
        @Value("#{stepExecutionContext[max_time_stamp]}") String maxTimeStamp,
        @Qualifier("documentRowMapper") RowMapper<Document> documentRowmapper,
        @Qualifier("sourceDataSource") DataSource jdbcDocumentSource) throws Exception {

    JdbcPagingItemReader<Document> reader = new JdbcPagingItemReader<>();
    reader.setDataSource(jdbcDocumentSource);
    SqlPagingQueryProviderFactoryBean qp = new SqlPagingQueryProviderFactoryBean();
    qp.setSelectClause(env.getProperty("source.selectClause"));
    qp.setFromClause(env.getProperty("source.fromClause"));
    qp.setSortKey(env.getProperty("source.sortKey"));
    qp.setWhereClause(stepPartitioner.getPartitioningLogic(minValue, maxValue, minTimeStamp, maxTimeStamp));
    qp.setDataSource(jdbcDocumentSource);
    reader.setPageSize(Integer.parseInt(env.getProperty("source.pageSize")));
    reader.setQueryProvider(qp.getObject());
    reader.setRowMapper(documentRowmapper);
    return reader;
}

From source file:org.springframework.batch.item.database.JdbcPagingItemReaderAsyncTests.java

protected ItemReader<Foo> getItemReader() throws Exception {

    JdbcPagingItemReader<Foo> reader = new JdbcPagingItemReader<Foo>();
    reader.setDataSource(dataSource);//from   w ww.  ja  va2s.  co m
    SqlPagingQueryProviderFactoryBean factory = new SqlPagingQueryProviderFactoryBean();
    factory.setDataSource(dataSource);
    factory.setSelectClause("select ID, NAME, VALUE");
    factory.setFromClause("from T_FOOS");
    Map<String, Order> sortKeys = new LinkedHashMap<String, Order>();
    sortKeys.put("VALUE", Order.ASCENDING);
    factory.setSortKeys(sortKeys);
    reader.setQueryProvider(factory.getObject());
    reader.setRowMapper(new RowMapper<Foo>() {
        @Override
        public Foo mapRow(ResultSet rs, int i) throws SQLException {
            Foo foo = new Foo();
            foo.setId(rs.getInt(1));
            foo.setName(rs.getString(2));
            foo.setValue(rs.getInt(3));
            return foo;
        }
    });
    reader.setPageSize(PAGE_SIZE);
    reader.afterPropertiesSet();
    reader.setSaveState(false);

    return reader;
}

From source file:org.springframework.batch.item.database.JdbcPagingRestartIntegrationTests.java

protected ItemReader<Foo> getItemReader() throws Exception {

    JdbcPagingItemReader<Foo> reader = new JdbcPagingItemReader<Foo>();
    reader.setDataSource(dataSource);/*from w w  w .j a  v  a2  s  . c om*/
    SqlPagingQueryProviderFactoryBean factory = new SqlPagingQueryProviderFactoryBean();
    factory.setDataSource(dataSource);
    factory.setSelectClause("select ID, NAME, VALUE");
    factory.setFromClause("from T_FOOS");
    Map<String, Order> sortKeys = new LinkedHashMap<String, Order>();
    sortKeys.put("VALUE", Order.ASCENDING);
    factory.setSortKeys(sortKeys);
    reader.setQueryProvider(factory.getObject());
    reader.setRowMapper(new RowMapper<Foo>() {
        @Override
        public Foo mapRow(ResultSet rs, int i) throws SQLException {
            Foo foo = new Foo();
            foo.setId(rs.getInt(1));
            foo.setName(rs.getString(2));
            foo.setValue(rs.getInt(3));
            return foo;
        }
    });
    reader.setPageSize(pageSize);
    reader.afterPropertiesSet();
    reader.setSaveState(true);

    return reader;
}