?? pagelist.java
字號(hào):
package com.easyjf.web.tools;
import java.util.*;
/**
* 實(shí)現(xiàn)通過調(diào)用IQuery實(shí)現(xiàn)分頁處理,其它特殊形式的分頁查詢需求只需要繼承該類即可,比如DbPageList。具體的分頁查詢算法可以根據(jù)實(shí)際應(yīng)用中的記錄數(shù)、響應(yīng)時(shí)間要求等選擇適合的查詢處理器IQuery,
*
* @author 蔡世友
*
*/
public class PageList implements IPageList {
private int rowCount;// 記錄數(shù)
private int pages;// 總頁數(shù)
private int currentPage;// 實(shí)際頁數(shù)
private List result;//查詢結(jié)果集
private IQuery query;//查詢器
public PageList() {
}
/**
* 根據(jù)查詢器q構(gòu)造一個(gè)分頁處理對(duì)象
* @param q
*/
public PageList(IQuery q) {
this.query = q;
}
/**
* 設(shè)置查詢器
*/
public void setQuery(IQuery q) {
query = q;
}
/**
* 返回查詢結(jié)果集,只有在執(zhí)行doList方法后才能取得正確的查詢結(jié)果
*/
public List getResult() {
return result;
}
/**
* 根據(jù)每頁記錄數(shù),頁碼,統(tǒng)計(jì)sql及實(shí)際查詢sql執(zhí)行查詢操作
*/
public void doList(int pageSize, int pageNo, String totalSQL,
String queryHQL) {
List rs = null;
int total = query.getRows(totalSQL);
if (total > 0) {
this.rowCount = total;
this.pages = (this.rowCount + pageSize - 1) / pageSize; // 記算總頁數(shù)
int intPageNo = (pageNo > this.pages ? this.pages : pageNo);
if (intPageNo < 1)
intPageNo = 1;
this.currentPage = intPageNo;
if (pageSize > 0) {
query.setFirstResult((intPageNo - 1) * pageSize);
query.setMaxResults(pageSize);
}
rs = query.getResult(queryHQL);
}
result = rs;
}
/**
* 根據(jù)每頁記錄數(shù),頁碼,統(tǒng)計(jì)sql及實(shí)際查詢sql及參數(shù)執(zhí)行查詢操作
*/
public void doList(int pageSize, int pageNo, String totalSQL,
String queryHQL, Collection paraValues) {
List rs = null;
query.setParaValues(paraValues);
int total = query.getRows(totalSQL);
if (total > 0) {
this.rowCount = total;
this.pages = (this.rowCount + pageSize - 1) / pageSize; // 記算總頁數(shù)
int intPageNo = (pageNo > this.pages ? this.pages : pageNo);
if (intPageNo < 1)
intPageNo = 1;
this.currentPage = intPageNo;
if (pageSize > 0) {
query.setFirstResult((intPageNo - 1) * pageSize);
query.setMaxResults(pageSize);
}
rs = query.getResult(queryHQL);
}
result = rs;
}
/**
* 返回總頁數(shù)
*/
public int getPages() {
return pages;
}
/**
* 返回總記錄數(shù)
*/
public int getRowCount() {
return rowCount;
}
/**
* 返回當(dāng)前頁
*/
public int getCurrentPage() {
return currentPage;
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -