程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 基於Hibernate Query實現分頁器

基於Hibernate Query實現分頁器

編輯:關於JAVA

import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.ScrollableResults;
/** *//**
* <p>Title:分頁器</p>
*
* <p>Description:</p>
*
* <p>Copyright: Copyright (c) 2006</p>
*
* <p>Company: </p>
*
* <p>Author: 一個人的日子</p>
*
* <p>Version: 1.0</p>
*
* <p>Create Date: 2006-08-17</p>
*
*/
public class Page ...{
private List result; //結果集
  private int pageSize; //頁大小
  private int startPage; //起始頁 從1開始
  private ScrollableResults scrollableResults;
  private int totalResults; //總記錄的條數
  private int totalPages; //總頁數
  
public Page (int startPage,int pageSize,Query query)...{
 this.startPage=startPage;
   this.pageSize=pageSize;
   this.result=null;  
   try ...{
  this.scrollableResults=query.scroll();
  this.scrollableResults.last();
  if(scrollableResults.getRowNumber()>=0)...{
  this.totalResults=this.scrollableResults.getRowNumber() + 1;
  } else ...{
  this.totalResults=0;
  }
  setTotalPages();
  result=query.setFirstResult((this.getStartPage()-1)*this.pageSize).setMaxResults(this.pageSize).list();
 } catch (HibernateException e) ...{
  e.printStackTrace();
 }
  }
/** *//**
 * 得到查詢結果
 * @return 查詢結果
 */
public List getResult() ...{ 
 return result;
}
/** *//**
 * 得到起始頁
 * @return
 */
public int getStartPage() ...{
 if(startPage<1)...{
  startPage= 1;
 }
 if(startPage>totalPages)...{
  startPage=totalPages;
 }
 return startPage;
}
/** *//**
 * 得到記錄總數
 * @return
 */
public int getTotalResults() ...{
 return totalResults;
}
/** *//**
 * 得到頁大小
 * @return
 */
public int getPageSize() ...{
    return pageSize;
  }
/** *//**
 * 判斷是否是第一頁
 * @return
 */
public boolean isFirstPage()...{
 return this.startPage==1;
}
/** *//**
 * 判斷是否是有後一頁
 * @return
 */
public boolean hasNextPage()...{
 return this.startPage<this.totalPages;
}
/** *//**
 * 判斷是否是有前一頁
 * @return
 */
public boolean hasPreviousPage()...{
 return this.startPage>1;
}
/** *//**
 * 設置總頁數
 *
 */
private void setTotalPages() ...{
 this.totalPages=this.totalResults/this.pageSize;
 if(totalPages*pageSize<totalResults)...{
  totalPages++;
 }
}
/** *//**
 * 得到總頁數
 * @return
 */
public int getTotalPages() ...{
 return totalPages;
}
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved