我是靠谱客的博主 玩命花生,这篇文章主要介绍PageHelper分页pageSize和total异常问题,现在分享给大家,希望可以做个参考。

分页开启语句必须放到查询语句之前,不然无效。

复制代码
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
2
public 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
5
PageInfo<CourseVO> page2 = new PageInfo<>(); BeanUtils.copyProperties(page, page2); page2.setList(voList); return page2;

最后

以上就是玩命花生最近收集整理的关于PageHelper分页pageSize和total异常问题的全部内容,更多相关PageHelper分页pageSize和total异常问题内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(154)

评论列表共有 0 条评论

立即
投稿
返回
顶部