- 在我们日常使用pageHelper插件的过程中,我们通常是在service层中查找数据并把数据直接转换成Page对象。`
- 代码如下:
@Override
public PageResult<Brand> findPage(int page, int size) {
PageHelper.startPage(page,size);
Page<Brand> pageResult=(Page<Brand>) brandMapper.selectAll();
return new PageResult<>(pageResult.getTotal(),pageResult.getResult());
}`
在service层使用插件封装好的startPage()方法后,直接查找所有的数据,并把返回的数据对象转换成Page对象。
-
但是在实战过程中,我们一般都是多表查询,返回来的数据通常都是要映射到其它的bean属性中的,并封装到集合中。这时就需要把一个集合类型的数据转换成page对象。
-
解决办法。
1、创建PageResult工具类
package com.qingcheng.entity;
import java.io.Serializable;
import java.util.List;
public class PageResult<T> implements Serializable {
private Long total;
private List<T> rows;
public PageResult(Long total, List<T> rows) {
this.total = total;
this.rows = rows;
}
public Long getTotal() {
return total;
}
public void setTotal(Long total) {
this.total = total;
}
public List<T> getRows() {
return rows;
}
public void setRows(List<T> rows) {
this.rows = rows;
}
}
2、在controller层。(这里在service层中没有使用startPage方法)
PageHelper.startPage(page,5);
PageResult res= new PageResult((long) leaveFormList.size(),leaveFormList);
3、结果演示,返回到前台的页面数据为total和rows(list集合中的数据)