经典分页

来源:互联网 发布:知子伯母漫画 编辑:程序博客网 时间:2024/04/29 06:56

实现分页查询的关键是获得所有符合条件的记录总数,这样就能根据每页的数量计算出页数,

为此设计一个  Page  对象,初始化每页需要显示的记录数和要显示的页号

 

public class Page
{
              public static final int DEFAULT_PAGESIZE = 10;

             

              private int pageSize;
              private int pageIndex;
              private int totalCount;
              private int pageCount;

              

              public Page(int pageSize,int pageIndex){
                      if(pageSize < 1)
                          pageSize = 1;
                      if(pageIndex < 1)
                           pageIndex = 1;
                      this.pageSize = pageSize;
                      this.pageIndex = pageIndex;
             }
            public Page{int DUFAULT_PAGESIZE}{  this(pageIndex,DEFAULT_PAGESIZE);}


            public int getPageIndex(){return pageIndex;}
            public int getPageCount(){return pageCount;}
            public int getTotalCount(){return totalCount;}

            public int getPageSize{return pageSize;}

 

           //如果是第一页,设置第一条记录序号为0
           public int getFirstResult(){return (pageIndex-1)*pageSize; }

 

           public boolean getHasPrevious(){return pageIndex>1; }
           public boolean getHasNext(){return pageIndex<pageCount; }
           public boolean isEmpty(){return totalCount == 0;}

 

           public void setTotalCount(int totalCount){
                   this.totalCount = totalCount;
                   pageCount = totalCount / pageSize + (totalCount%pageSize==0 ? 0 :1);
               if(totalCount == 0)
                   {
                     if(pageIndex!=1)
                         throw new IndexOutOfBoundsException("Page index out of rangs.");
                    }

                else{
               if(pageIndex>pageCount)
                         throw new IndexOutOfBoundsException("Page index out of range.");
                       }
          }