做分页的步骤:
A.先设计好Bean 如:Goods并配置好基本映射关系
B.新建一个Pager<T>四个int依次是
private int currentPageNo=1;
private int totalRecords;
private int pagesize=2;
private int totalPageNum;
private List<Goods> dataList;
(注意:写完后在Pager<T>里面做数据有效性校验)
C,考虑好所有的条件并封装为一个对象MyCondition,,
private double minPrice=0;
private double maxPrice=500000;
private int cateId=-1;
private int brandId=-1;
C,直接在daoImpl中写个
public Pager<Goods> getPager(MyCondition condition,int pageSize,int currentPageNum){...}
先就用MyCondition给的条件查一遍,,查到totalRecords,并直接设置到Pager<T>里面
然后设置pager.setPagesize(pageSize);
此时就可以拿:int totalPageNo=pager.getTotalPageNum();
最后设置:pager.setCurrentPageNo(currentPageNum);
求出int curr=pager.getCurrentPageNo();int size=pager.getPagesize();
int fromIndex=(curr-1)*size;
query33.setFirstResult(fromIndex).setMaxResults(size);//这就其实和limit x,y一模一样的含义
List<Goods> dataList=query33.list();
最后设置最重要的:pager.setDataList(dataList);
(总结:1设置pager的属性的顺序非常重要 2和mysql的limit fromIndex,size一样,这里size=150也可以任意大,都是对的)