package com.hantsylabs.example.spring.job; import java.sql.ResultSet; import java.sql.SQLException; import javax.sql.DataSource; import org.springframework.batch.item.database.JdbcPagingItemReader; import org.springframework.batch.item.database.PagingQueryProvider; import org.springframework.batch.item.database.support.SqlPagingQueryProviderFactoryBean; import org.springframework.jdbc.core.RowMapper; import com.hantsylabs.example.spring.model.Conference; public class ConferenceItemReader extends JdbcPagingItemReader<Conference> { public ConferenceItemReader(DataSource ds) { super(); setDataSource(ds); setPageSize(10); setQueryProvider(queryProvider(ds)); setRowMapper(rowMapper()); } private RowMapper<Conference> rowMapper() { return new RowMapper<Conference>() { @Override public Conference mapRow(ResultSet rs, int rowNum) throws SQLException { Conference conf=new Conference(); conf.setId(rs.getLong("id")); conf.setName(rs.getString("name")); return conf; } }; } private PagingQueryProvider queryProvider(DataSource ds) { SqlPagingQueryProviderFactoryBean queryProvider=new SqlPagingQueryProviderFactoryBean(); queryProvider.setDataSource(ds); queryProvider.setSelectClause("id, name "); queryProvider.setFromClause("conference"); queryProvider.setSortKey("id"); try { return queryProvider.getObject(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } }