我有從數據庫檢索數據(項目)的分頁要求。 UI還包含搜索選項和數據量,順序也取決於搜索條件。分頁的數據問題:java + oracle sql
比方說,一個客戶發送請求與一些搜索條件,並得到60個結果。客戶端查看1到maxPageSize的項目(默認爲25)。如果第二頁被請求 - 26-50項將被顯示。 問題是目前我無法獲得最大結果數量,也無法顯示maxPage的數量。
我看到了這個問題的解決方案2:
- 查詢數據庫,第二次用同樣的參數,但沒有 分頁,並獲得項目的數量。
- 檢索數據庫中的所有項目, 按照搜索條件在後端代碼上過濾它們併發送給客戶端。
的問題是:
1)操作的是較便宜的一般?
2)如果有更好的解決方案,還有什麼可以解決這類任務?
P.S.在Java上編寫的後端代碼中,查詢通過JDBC發送到Oracle 11g DB。
---編輯---
我已經解決了這個問題是這樣的:
WITH FINAL_RESULT AS
(SELECT SORTED_ITEMS.*,
ROWNUM RN
FROM (sorted basic query with searches))
SELECT FINAL_RESULT.*,
(SELECT COUNT(*) FROM FINAL_RESULT) ITEMS_COUNT
FROM FINAL_RESULT
WHERE RN BETWEEN ? AND ?
爲什麼你不能得到結果的總數?但更重要的是,爲什麼你甚至需要它?只需查詢26個結果,如果你回來了26,然後使下一個按鈕可見,否則灰色。 –
FE上的設計需要分頁,如1,2,3 ... 50 –