分页开启语句必须放到查询语句之前,不然无效。
复制代码
1
2
3
4
5// 开启分页 PageHelper.startPage(pageNum, pageSize); // 查询 List<Course> courseList = baseMapper.selectByCondition();
pageSize等于total的问题是因为在给PageInfo封装值之前进行过多条sql查询,PageInfo会默认对最后一条查询结果进行封装,所以导致最开始的数据丢失,这种情况主要是:查询的数据来自多张表的同时又要做分页,一般都是先把主要数据查出来,再根据主要数据查询其他表的次要数据,而我们肯定是要把主要数据封装到PageInfo里的,所以如果在所有的语句查询完后,在给PageInfo赋值,主要数据就会丢失,解决办法是,查询了主要数据后立即把数据保存到PageInfo。
保存的PageInfo数据的泛型,不是要返回的泛型,因此要在最后创建第二个泛型为返回值的PageInfo对象。
复制代码
1
2public PageInfo<CourseVO> getCourseVOList(CourseQuery courseQuery,Integer pageNum,Integer pageSize)
复制代码
1
2
3
4// 查询 List<Course> courseList = baseMapper.selectByCondition(); PageInfo<Course> page = new PageInfo<>(courseList);
通过工具类复制之前保存下来的数据即可,我们要设置的只有List集合而已
复制代码
1
2
3
4
5PageInfo<CourseVO> page2 = new PageInfo<>(); BeanUtils.copyProperties(page, page2); page2.setList(voList); return page2;
最后
以上就是玩命花生最近收集整理的关于PageHelper分页pageSize和total异常问题的全部内容,更多相关PageHelper分页pageSize和total异常问题内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复