BATCH-964: added fetchSize property

This commit is contained in:
trisberg
2008-12-09 22:19:56 +00:00
parent eaa359b916
commit 194e1ab737
3 changed files with 81 additions and 0 deletions

View File

@@ -57,6 +57,8 @@ import java.sql.SQLException;
*/
public class JdbcPagingItemReader<T> extends AbstractPagingItemReader<T> implements InitializingBean {
public static final int VALUE_NOT_SET = -1;
private DataSource dataSource;
private PagingQueryProvider queryProvider;
@@ -73,6 +75,8 @@ public class JdbcPagingItemReader<T> extends AbstractPagingItemReader<T> impleme
private Object startAfterValue;
private int fetchSize = VALUE_NOT_SET;
public JdbcPagingItemReader() {
setName(ClassUtils.getShortName(JdbcPagingItemReader.class));
}
@@ -81,6 +85,19 @@ public class JdbcPagingItemReader<T> extends AbstractPagingItemReader<T> impleme
this.dataSource = dataSource;
}
/**
* Gives the JDBC driver a hint as to the number of rows that should be
* fetched from the database when more rows are needed for this
* <code>ResultSet</code> object. If the fetch size specified is zero, the
* JDBC driver ignores the value.
*
* @param fetchSize the number of rows to fetch
* @see ResultSet#setFetchSize(int)
*/
public void setFetchSize(int fetchSize) {
this.fetchSize = fetchSize;
}
public void setQueryProvider(PagingQueryProvider queryProvider) {
this.queryProvider = queryProvider;
}
@@ -114,6 +131,9 @@ public class JdbcPagingItemReader<T> extends AbstractPagingItemReader<T> impleme
super.afterPropertiesSet();
Assert.notNull(dataSource);
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
if (fetchSize != VALUE_NOT_SET) {
jdbcTemplate.setFetchSize(fetchSize);
}
jdbcTemplate.setMaxRows(pageSize);
this.simpleJdbcTemplate = new SimpleJdbcTemplate(jdbcTemplate);
Assert.notNull(queryProvider);