From c3df035607e633e25049cb27f62073b438623c01 Mon Sep 17 00:00:00 2001 From: trisberg Date: Tue, 21 Oct 2008 04:28:15 +0000 Subject: [PATCH] BATCH-848: improved the paging support --- .../batch/item/database/IbatisPagingItemReader.java | 5 ++++- .../item/database/IbatisPagingItemReaderCommonTests.java | 2 +- .../database/IbatisPagingItemReaderParameterTests.java | 2 +- .../springframework/batch/item/database/ibatis-foo.xml | 8 ++++++++ 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/IbatisPagingItemReader.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/IbatisPagingItemReader.java index bf8426d48..4a99a7f51 100644 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/IbatisPagingItemReader.java +++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/database/IbatisPagingItemReader.java @@ -94,7 +94,10 @@ public class IbatisPagingItemReader extends AbstractPagingItemReader { if (parameterValues != null) { parameters.putAll(parameterValues); } - results = sqlMapClientTemplate.queryForList(queryId, parameters, (page * pageSize), pageSize); + parameters.put("_page", page); + parameters.put("_pagesize", pageSize); + parameters.put("_skiprows", page * pageSize); + results = sqlMapClientTemplate.queryForList(queryId, parameters); } @Override diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/IbatisPagingItemReaderCommonTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/IbatisPagingItemReaderCommonTests.java index ba0e4b529..4f4e8573d 100644 --- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/IbatisPagingItemReaderCommonTests.java +++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/IbatisPagingItemReaderCommonTests.java @@ -21,7 +21,7 @@ public class IbatisPagingItemReaderCommonTests extends CommonDatabaseItemStreamI SqlMapClient sqlMapClient = createSqlMapClient(); IbatisPagingItemReader reader = new IbatisPagingItemReader(); - reader.setQueryId("getAllFoos"); + reader.setQueryId("getPagedFoos"); reader.setSqlMapClient(sqlMapClient); reader.setSaveState(true); diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/IbatisPagingItemReaderParameterTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/IbatisPagingItemReaderParameterTests.java index e357c30bd..6fb89eb70 100644 --- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/IbatisPagingItemReaderParameterTests.java +++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/database/IbatisPagingItemReaderParameterTests.java @@ -24,7 +24,7 @@ public class IbatisPagingItemReaderParameterTests extends AbstractPagingItemRead SqlMapClient sqlMapClient = createSqlMapClient(); IbatisPagingItemReader reader = new IbatisPagingItemReader(); - reader.setQueryId("getFoos3AndUp"); + reader.setQueryId("getPagedFoos3AndUp"); reader.setParameterValues(Collections.singletonMap("limit", 3)); reader.setSqlMapClient(sqlMapClient); reader.setSaveState(true); diff --git a/spring-batch-infrastructure/src/test/resources/org/springframework/batch/item/database/ibatis-foo.xml b/spring-batch-infrastructure/src/test/resources/org/springframework/batch/item/database/ibatis-foo.xml index bceca92d4..d418da081 100644 --- a/spring-batch-infrastructure/src/test/resources/org/springframework/batch/item/database/ibatis-foo.xml +++ b/spring-batch-infrastructure/src/test/resources/org/springframework/batch/item/database/ibatis-foo.xml @@ -22,6 +22,14 @@ select ID, NAME, VALUE from T_FOOS + + + +