PageHelper分页插件的易疑惑点
1.PageHelper.startPage(pageNum, pageSize)的位置:
PageHelper.startPage(pageNum, pageSize) 只对该语句以后的第一个查 询语句得到的数据进行分页。对后面的查询语句无影响。
2.查询返回的结果List的实际类型是Page类型:
public class TestPageHelper {
@Test
public void testPageHelper() {
SqlSession sqlSession = this.getSqlSessionFactory().openSession();
PersonMapper personMapper = sqlSession.getMapper(PersonMapper.class);
Page<Object> page=PageHelper.startPage(1,10);
//注意persons的实际类型是Page<E>
List<Person> persons=personMapper.getAllPersons();
PageInfo pageInfo=new PageInfo(persons,1);
System.out.println(pageInfo.isIsFirstPage());
System.out.println(pageInfo.getPages());// total pages
}
}
当时我比较疑惑为什么只给PageInfo传入一个List却可以得到总页数之类的参数值,后来查了资料才发现上面的persons的实际类型是Page,这样就能得到答案了,persons中除了有List的部分方法外也还有其它方法和属性。所以可以在pageInfo中取出persons的Page相关信息,然后可以通过pageInfo得到总页数之类的信息。