Example usage for org.springframework.batch.item.database.support HsqlPagingQueryProvider init

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

Introduction

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

Prototype

@Override
public void init(DataSource dataSource) throws Exception 

Source Link

Document

Check mandatory properties.

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

    // setup reader
    JdbcPagingItemReader<String> reader = new JdbcPagingItemReader<String>();
    reader.setDataSource(dataSource);/* w w  w .  jav a 2s .c  om*/
    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();
    }
}