Example usage for org.springframework.batch.item.database.support SqlPagingQueryProviderFactoryBean setDatabaseType

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

Introduction

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

Prototype

public void setDatabaseType(String databaseType) 

Source Link

Usage

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 v  a  2s. c  o  m*/
    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();
    }
}