データベースから取得したデータ(項目)のページ付けの要件があります。 UIには検索オプションとデータ量が含まれており、検索条件によっても順序が異なります。データのページ番号付け:java + oracle sql
クライアントがいくつかの検索条件でリクエストを送信し、結果が60件あるとします。クライアントは1からmaxPageSizeまでの項目を表示します(デフォルトでは25)。 2ページ目が要求された場合 - 26-50個のアイテムが表示されます。 問題は現時点で最大の結果を得ることができず、maxPageの数を表示できません。
私はこの問題の解決策2を参照してください。
- クエリデータベースもう一度同じパラメータではなく ページネーションがなく、アイテムの数を取得します。
- DBからすべてのアイテムを取得すると、 が検索基準でバックエンドコードにフィルタリングされ、クライアントに送信されます。
質問は以下のとおりです。
1)一般的に安価で操作のどれですか?
2)この種のタスクを解決するには、より良い解決策があれば、他に何ができますか?
P. Javaで書かれたバックエンド・コードは、JDBC経由でOracle 11g DBに送られます。
--- EDIT ---
私は、この問題をこのように解決してきました:
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のようなページ番号が必要です。 –