关于PageInfo的total数值的问题

关于PageInfo的total数值的问题

我有6条数据,按照老师的写法total的数量为2。

后来查网站,看源码发现了问题。

(63条消息) 解决 PageInfo 返回的 total 不正确,和 list 的 size 一样__成君的博客-CSDN博客_pageinfo返回记录数不正确

代码:

@Override
    public PageInfo showList(Integer pageNum, Integer pageSize) throws ImoocMallException {

        //这样写 total = 6
        Integer userId = UserFilter.user.getId();
        PageHelper.startPage(pageNum, pageSize);
        List<Order> orderList = orderMapper.selectByuserId(userId);
        PageInfo<Order> pageInfo = new PageInfo(orderList);
        List<OrderVo> orderVoList = orderListToOrderVOList(orderList);
        PageInfo<OrderVo> page = new PageInfo(orderVoList);
        BeanUtils.copyProperties(pageInfo, page);
        return page;

        //老师的写法 total = 2
//        Integer userId = UserFilter.user.getId();
//        PageHelper.startPage(pageNum, pageSize);
//        List<Order> orderList = orderMapper.selectByuserId(userId);
//        List<OrderVo> orderVoList = orderListToOrderVOList(orderList);
//        PageInfo page = new PageInfo(orderVoList);
//        page.setList(orderVoList);
//        return page;
    }


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
神话_ 2022-06-23 11:12:06
老师的写法是正确的,
PageInfo page = new PageInfo(orderVoList);
这个你的分页对象传错了,要把数据库查询出来的对象集合传进去,而不是把拷贝后的VO集合传进去,然后再利用VO集合给PageInfo对象的list属性重新赋值。因为PageInfo要对数据库查询出来的集合,进行总条数,页数等信息的封装,你写成拷贝后的VO,只能对该集合进行页面信息封装了,集合里有几条数据,总条数就是多少了,肯定就不是数据库查询出来的总条数了
如:
PageInfo page = new PageInfo(orderList);  page.setList(orderVoList);
  • 提问者 平淡的坎坷 #1

    谢谢你的分享,是我没有仔细看视频。咱们是两个思路,你是把ordeVoList的List数据重新放进PageInfo里,我是将PageInfo里有的数据copy进来,都是没问题的。老师是没错的哈哈。

    2022-06-23 11:22:50
好帮手慕小脸 2022-06-17 13:45:24

同学你好,关于同学提出的内容,小慕这边会反馈给老师进行代码核实验证,也非常感谢同学的代码分享~

祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师