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

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

Introduction

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

Prototype

@Override
public void afterPropertiesSet() throws Exception 

Source Link

Document

Check mandatory properties.

Usage

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

private JdbcPagingItemReader<UUID> createReader(
        final SqlPagingQueryProviderFactoryBean sqlPagingQueryProviderFactoryBean) {
    try {//  ww w  . j a  va  2  s .c  om
        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:nu.yona.server.batch.jobs.ActivityAggregationBatchJob.java

private JdbcPagingItemReader<Long> createReader(Date cutOffDate, int chunkSize,
        SqlPagingQueryProviderFactoryBean sqlPagingQueryProviderFactoryBean) {
    try {//from w ww .  ja va2 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: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);/*w  ww  .ja v a  2  s.co m*/

    // 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   ww  w. ja  va2 s  .c  om
    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: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  v  a  2  s.  c  o 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);// w ww.  j  a va2 s  . 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(pageSize);
    reader.afterPropertiesSet();
    reader.setSaveState(true);

    return reader;
}