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

我在利用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 list = super.queryListByWhere(content);

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

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

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

分页利用PageHelper.startPage(page, rows)时所放位置的注意事项_第1张图片

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 list = super.queryListByWhere(content);


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

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

分页利用PageHelper.startPage(page, rows)时所放位置的注意事项_第2张图片

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

(尊重笔者的劳动哦,转载请注明出处哦。)

 

你可能感兴趣的:(Java)