v3.1.1
- 统一返回值为
Page<E>
- (可以直接按
List
- 使用),方便在页面使用EL表达式,如
${page.pageNum}
- ,
${page.total}
v3.1.1版本示例:
@Test
public void testPageHelperByStartPage() throws Exception {
String logip = "";
String username = "super";
String loginDate = "";
String exitDate = null;
String logerr = null;
//不进行count查询,第三个参数设为false
PageHelper.startPage(1, 10, false);
//返回结果是Page<SysLoginLog>
//该对象除了包含返回结果外,还包含了分页信息,可以直接按List使用
List<SysLoginLog> logs = sysLoginLogMapper
.findSysLoginLog(logip, username, loginDate, exitDate, logerr);
Assert.assertEquals(10, logs.size());
//当第三个参数没有或者为true的时候,进行count查询
PageHelper.startPage(2, 10);
//返回结果是Page<SysLoginLog>
//该对象除了包含返回结果外,还包含了分页信息,可以直接按List使用
Page<SysLoginLog> page = (Page<SysLoginLog>) sysLoginLogMapper
.findSysLoginLog(logip, username, loginDate, exitDate, logerr);
Assert.assertEquals(10, page.getResult().size());
//进行count查询,返回结果total>0
Assert.assertTrue(page.getTotal() > 0);
}
@Test
public void testPageHelperByRowbounds() throws Exception {
String logip = "";
String username = "super";
String loginDate = "";
String exitDate = null;
String logerr = null;
//使用RowBounds方式,不需要PageHelper.startPage
//RowBounds方式默认不进行count查询
//返回结果是Page<SysLoginLog>
//该对象除了包含返回结果外,还包含了分页信息,可以直接按List使用
List<SysLoginLog> logs = sysLoginLogMapper
.findSysLoginLog(logip, username, loginDate, exitDate, logerr, new RowBounds(0, 10));
Assert.assertEquals(10, logs.size());
//这里进行了强制转换,实际上并没有必要
Page<SysLoginLog> logs2 = (Page<SysLoginLog>) sysLoginLogMapper
.findSysLoginLog(logip, username, loginDate, exitDate, logerr, new RowBounds(0, 10));
Assert.assertEquals(10, logs2.size());
}
@Test
public void testPageHelperByNamespaceAndRowBounds() throws Exception {
//没有RowBounds不进行分页
List<SysLoginLog> logs = sqlSession.selectList("findSysLoginLog2");
Assert.assertNotEquals(10, logs.size());
//使用RowBounds分页
List<SysLoginLog> logs2 = sqlSession
.selectList("findSysLoginLog2",null,new RowBounds(0,10));
Assert.assertEquals(10, logs2.size());
}