上一个教程我们讲解如何配置MyBatis实例化,数据库类型选择器,数据库方言实现,本次我们将接着上个教程的成果来整合MyBatis常用的分页拦截器实现,如需看上篇教程的同学可点击链接
【Spring Boot从入门到进阶教程系列 -- MyBatis配置,数据库选择器和分页方言实现】
下面我们直接开启代码之旅
步骤1. 编写我们的分页对象接口
public interface Pagination<T> extends Serializable {
public boolean isSpilled();
public void setSpilled(boolean spilled);
public Integer getPageNo();
public void setPageNo(Integer pageNo);
public Integer getPageSize();
public void setPageSize(Integer pageSize);
public Integer getPageTotal();
public void setPageTotal(Integer pageTotal);
public Integer getPageNumber();
public void setPageNumber(Integer pageNumber);
public List<T> getData();
public void setData(List<T> data);
}
步骤2. 编写分页对象接口实现类
public class SimplePagination<T> implements Pagination<T> {
private boolean spilled = true; // 是否重置溢出的PageNo
private Integer pageNo;
private Integer pageSize;
private Integer pageTotal;
private Integer pageNumber;
private List<T> data;
public SimplePagination() {
}
public SimplePagination(Integer pageNo, Integer pageSize, boolean spilled) {
this(pageNo, pageSize, 0, null, null);
this.spilled = spilled;
}
public SimplePagination(Integer pageNo, Integer pageSize) {
this(pageNo, pageSize, 0, null, null);
}
public SimplePagination(Integer pageNo, Integer pageSize, Integer pageTotal) {
this(pageNo, pageSize, pageTotal, (pageTotal % pageSize == 0) ? (pageTotal / pageSize) : (pageTotal / pageSize + 1), null);
}
public SimplePagination(Integer pageNo, Integer pageSize, Integer pageTotal, List<T> data) {
this(pageNo, pageSize, pageTotal, (pageTotal % pageSize == 0) ? (pageTotal / pageSize) : (pageTotal / pageSize + 1), data);
}
public SimplePagination(Integer pageNo, Integer pageSize, Integer pageTotal, Integer pageNumber, List<T> data) {
this.pageNo = pageNo;
this.pageSize = pageSize;
this.pageTotal = pageTotal;
this.pageNumber = pageNumber;
this.data = data;
}
public boolean isSpilled() {
return spilled;
}
public void setSpilled(boolean spilled) {
this.spilled = spilled;
}