分页利用PageHelper.startPage(page, rows)时所放位置的注意事项

原文URL:https://blog.csdn.net/weixin_41267342/article/details/79151098

我在利用PageHelper.startPage(page, rows)做分页时,得到的total始终为0,满足不了工作要求.网上没搜到解决方案,自己调试了好久,才发现,顺序写错了。下面分享一下我工作中在用PageHelper时,遇到的问题,以及解决方案:

原来代码如下:

public TaoResult queryContentByPage(Integer page, Integer rows, Long categoryId) {

  //根据前台传过来的商品父 id: categoryId查询商品情况,查询出来的是多条商品数据list 
Content content = new Content();
content.setCategoryId(categoryId);
List<Content> list = super.queryListByWhere(content);

//设置分页数据
PageHelper.startPage(page, rows);
//获取pageInfo
PageInfo<Content> pageInfo = new PageInfo<>(list);
//获得总条数
long total = pageInfo.getTotal();
TaoResult<Content> taoResult = new TaoResult<Content>();
taoResult.setTotal(total);
taoResult.setRows(list);
return taoResult;
}

这样写,分页数据total始终为0,在debug调试过程中,可以看到最终结果为0,前台页面效果如下(右下角红框内):

把PageHelper.startPage(page, rows)提到最前面,修改后代码:

public TaoResult queryContentByPage(Integer page, Integer rows, Long categoryId) {

  //设置分页数据
PageHelper.startPage(page, rows);

  //根据前台传过来的商品父 id: categoryId查询商品情况,查询出来的是多条商品数据list 
Content content = new Content();
content.setCategoryId(categoryId);
List<Content> list = super.queryListByWhere(content);


//获取pageInfo
PageInfo<Content> pageInfo = new PageInfo<>(list);
//获得总条数
long total = pageInfo.getTotal();
TaoResult<Content> taoResult = new TaoResult<Content>();
taoResult.setTotal(total);
taoResult.setRows(list);
return taoResult;
}

修改后前台数据效果(右下角红框内):

总结:在使用PageHelper分页时,一定要把PageHelper.startPage(page, rows)放在最前面,否则会造成总条数显示为:0

猜你喜欢

转载自blog.csdn.net/heng_yan/article/details/86158599