由于mybatis的分页插件PageHelper使用时只对紧随 PageHelper.startPage(pageNum, pageSize); 后面执行的一条sql语句进行分页,有时用不成!
分页实体类:
package com.mfc.entity;
import java.util.List;
public class ListSub<E> {
private int pageNum; //当前页
private int pages; //总页数
private int total; //总条数
private int pageSize;//每页显示数
private List<E> list;//要进行分页的list
public ListSub(int pageNum, int pageSize, List<E> list) {
super();
this.pageNum = pageNum;
this.pageSize = pageSize;
this.list = list;
}
public int getPageNum() {
return pageNum;
}
public void setPageNum(int pageNum) {
this.pageNum = pageNum;
}
public int getPages() {
if(this.total % this.pageSize == 0){
this.pages = this.total / this.pageSize;
}else{
this.pages = this.total / this.pageSize+1;
}
return pages;
}
public void setPages(int pages) {
this.pages = pages;
}
public int getTotal() {
total = list.size();
return total;
}
public void setTotal(int total) {
this.total = total;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public List<E> getList() {
List<E> newList = this.list.subList(pageSize*(pageNum-1), (pageSize*pageNum)>total?total:(pageSize*pageNum));
return newList;
}
public void setList(List<E> list) {
this.list = list;
}
}
调用方法:
public ListSub<Greens> getCategoryGreensList(int pageNum,int pageSize){
List<Category> categories = categoryDao.getAllCategory();
List<Greens> greens = new ArrayList<Greens>();
for (Category category : categories) {
List<Greens> greens2 = categoryDao.getCategoryGreensListByCategoryId(category.getCateId());
for (Greens greens3 : greens2) {
greens.add(greens3);
}
}
ListSub<Greens> listSub = new ListSub<Greens>(pageNum, pageSize, greens);
listSub.getPageNum();
listSub.getPages();
listSub.getTotal();
listSub.getPageSize();
return listSub;
}
测试可用!