zoukankan      html  css  js  c++  java
  • 关于pageHelper无法查到总数踩到的坑

    问题代码

    PageHelper.startPage(pageNum,pageSize);
    List<pojoVo> pojoVo=robotService.getPageList();
    PageInfo pageResult = new PageInfo(pojoVo);
    

    结果

    pageResult.getTotal(); //结果为当前页数量或者没有
    pageResult.getPage(); //结果为1
    

    经过微信小伙伴ken提示;发现是VO拼接姿势不对

    pageHelper是多线程操作,通过new PageInfo()查询出总条数和总页数;当为new PageInfo(pojoVo)时,是按照pojoVo去查询,所以无法查pojo到数据库中数据的总数的;需要先查出pojoList,然后拼接到Vo里面,在set到pageInfo中

    修改后的代码如下

    public CommonReturnType getList(Model model,@RequestParam(value = "pageNum",defaultValue = "1")Integer pageNum,
                            @RequestParam(value = "pageSize",defaultValue = "5")Integer pageSize){
    PageHelper.startPage(pageNum,pageSize);
    List<Pojo> pojoList=pojoService.getPageList();
    PageInfo pageResult = new PageInfo(pojoList);
    
    List<PojoVo> voList=new ArrayList<>();
    for(Pojo item:pojoList){
        PojoVo pojoVo=assembleRobotListVo(item);
        voList.add(pojoVo);
    }
    //这一步记得添加
    pageResult.setList(voList);
    
    System.out.println(pageResult.getTotal()); //此处已经查询出总条数
    System.out.println(pageResult.getPages());
    System.out.println(pageResult.getSize());
    return CommonReturnType.success(pageResult );
    }
    

    //拼接vo

    
    private PojoVo assembleRobotListVo(Pojo pojo){
        PojoVo pojoVo=new PojoVo ();
        pojoVo.setId(pojo.getId());
        pojoVo.setMac(pojo.getMac());
        pojoVo.setName(pojo.getName());
        return pojoVo;
    }
    
    ``` 
    备注: pojo为实体类  pojoVo为拼接的Vo显示字段
  • 相关阅读:
    第一次个人编程作业
    第一次博客作业
    学习C#字符串中的String类和String Builder类
    第一节:泛型在单例游戏基类中的简单运用
    Alpha 冲刺 (6/10
    Alpha 冲刺 (5/10)
    Alpha 冲刺 (4/10)
    福大软工1816 · 团队现场编程实战(抽奖系统)
    Alpha 冲刺 (3/10)
    Alpha 冲刺 (2/10)
  • 原文地址:https://www.cnblogs.com/smfx1314/p/11020029.html
Copyright © 2011-2022 走看看