乙個通用分頁查詢方法

2021-08-30 03:54:07 字數 776 閱讀 1802

為了簡化開發人員的**,想寫乙個通用的分頁查詢方法,為了提交效率,其中有一段是分解hql語句,組成查詢總數的hql語句,實現如下:

public paginationsupport findpagebyquery(final string hsql,final object values,

final int pagesize, final int startindex) else if(startindex>0) query.setfirstresult(startindex);

if(pagesize>0) query.setmaxresults(pagesize);

list items = query.list();

if(totalcount==-1) totalcount=items.size();

paginationsupport ps = new paginationsupport(items,

totalcount, pagesize, startindex);

return ps;

}}, true);

}

但是,在這個統計總數的hql會有問題,當資料表的主鍵包含多個欄位的時候,最後生成的sql會變成count(pid,did),這樣就會導致錯誤,如果有distinct時會更複雜,count(distinct pid,did),現在我只能新增個try,出現異常時呼叫query.list().size()去獲取總數

對於通用的分頁查詢方法各位有什麼好辦法?

乙個通用分頁類

1 功能 這個通用分頁類實現的功能是輸入頁數 第幾頁 和每頁的數目,就能獲得相應的資料。2 實現原理 分頁的實現通常分為兩種,一種是先把資料全查詢出來再分頁,一種是需要多少查詢多少,這裡使用第二種,所以就需要先實現在dao層能夠查詢一定範圍內的資料,這裡就實現通過id作為鍵值,查詢一定範圍內的資料的...

乙個通用的分頁儲存過程

這是我專案中使用的乙個分頁儲存過程,具有很強的通用性。配合前台asp.net使用50萬條資料基本感不到延遲。資料庫為sqlserver2000。1.分頁儲存過程 create procedure pagination str sql varchar 1000 執行的sql 不含order by 內容...

分享乙個通用的分頁SQL

又很久沒寫部落格,今天記錄乙個sqlserver通用分頁儲存過程 適用於sqlserver2000及以上版本 1.支援連表 2.支援條件查詢 use mydb go object storedprocedure dbo sp commonpage set quoted identifier on g...