接上篇文章 springboot使用PageHelper插件进行分页+模糊查询
我们看到PageInfo 返回给我们很多数据,可是我们在实际开发中是用不到那么多参数的,这时候我们就考虑是不是可以只留一般必须的参数呢,经过我的搜索和尝试我找到了一个自定义的PageInfo,直接上代码
import com.github.pagehelper.Page;
import com.github.pagehelper.PageSerializable;
import java.util.Collection;
import java.util.List;
/**
* @author 李李是小白
*/
public class PageInfoUtils<T> extends PageSerializable<T> {
private static final long serialVersionUID = 1L;
/**
* 当前页
*/
private int pageNum;
/**
* 每页的数量
*/
private int pageSize;
/**
* 总记录数
*/
private long total;
/**
* 总页数
*/
private int pages;
/**
* 结果集
*/
private List<T> list;
public PageInfoUtils(List<T> list) {
this(list, 8);
}
public PageInfoUtils(List<T> list, int navigatePages) {
if (list instanceof Page) {
Page page = (Page)list;
this.pageNum = page.getPageNum();
this.pageSize = page.getPageSize();
this.pages = page.getPages();
this.list = page;
this.total = page.getTotal();
} else if (list instanceof Collection) {
this.pageNum = 1;
this.pageSize = list.size();
this.pages = this.pageSize > 0 ? 1 : 0;
this.list = list;
this.total = (long)list.size();
}
}
public int getPageNum() {
return this.pageNum;
}
public void setPageNum(int pageNum) {
this.pageNum = pageNum;
}
public int getPageSize() {
return this.pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
@Override
public long getTotal() {
return this.total;
}
@Override
public void setTotal(long total) {
this.total = total;
}
public int getPages() {
return this.pages;
}
public void setPages(int pages) {
this.pages = pages;
}
@Override
public List<T> getList() {
return this.list;
}
@Override
public void setList(List<T> list) {
this.list = list;
}
@Override
public String toString() {
StringBuffer sb = new StringBuffer("PageBean{");
sb.append("pageNum=").append(this.pageNum);
sb.append(", pageSize=").append(this.pageSize);
sb.append(", total=").append(this.total);
sb.append(", pages=").append(this.pages);
sb.append(", list=").append(this.list);
sb.append(", navigatepageNums=");
sb.append('}');
return sb.toString();
}
}
其实上面的navigatepageNums我不知如何去掉或者能不能去掉,有大神看到我这篇文章可以在评论区教教我。
这个问题不影响使用,就是把PageInfo全部换成自定义的PageInfo,我这里命名为PageInfoUtils,还不会使用PageHelper分页的可以去文章最上面学习。
下面是两个类所属依赖的对比:
PageHelper的PageInfo
自定义的PageInfo,这里我是放到了utils包下
经过apifox测试后,发现返回数据已经是我们定义好的有
total–总数,
list–查询出的数据集合,
pageNum–当前页数
pageSize–每页所显示数据的条数
pages–总页数
然后对照原来的返回结果
怎么样,是不是少了很多,是不是更容易去理解了
学习不难,重在坚持,加油!!!