ホームページ  >  記事  >  Java  >  データ管理のために ResultSet を効率的にページ分割するにはどうすればよいですか?

データ管理のために ResultSet を効率的にページ分割するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-24 07:23:02181ブラウズ

How to Efficiently Paginate a ResultSet for Data Management?

ResultSet のページ分割

はじめに

大規模な結果セットを管理しやすい方法で表示するには、ページネーションは必須です。ユーザーが段階的にデータ内を移動できるようにすることで、ページネーションによりユーザー エクスペリエンスとパフォーマンスが向上します。

ResultSet をページ分割されたビューに変換する

ResultSet をページ分割されたビューに変換するにはビューを表示するには、次の手順が必要です:

1.リクエスト パラメータの追加

リクエスト パラメータを使用して JSP ページを拡張し、開始行 (firstrow) とフェッチする行数 (rowcount) を定義します。

2.ページング ボタンの作成

firstrow パラメータを操作するページング ボタンを JSP ページに追加します。 「次へ」ボタンは firstrow を rowcount だけ増やす必要があり、「Previous」ボタンは firstrow を rowcount だけ減らす必要があります。極端な値を適切に処理してください。

3.サブリスト クエリの実行

特定の SQL クエリを使用して、ResultSet のサブリストを取得します。データベースに応じて、構文は異なります。

  • MySQL/PostgreSQL:

    <code class="sql">SELECT id, username, job, place FROM contact ORDER BY id LIMIT %d OFFSET %d</code>
  • Oracle :

    <code class="sql">SELECT id, username, job, place FROM (SELECT id, username, job, place FROM contact ORDER BY id) WHERE ROWNUM BETWEEN %d AND %d</code>
  • DB2:

    <code class="sql">SELECT id, username, job, place FROM (SELECT row_number() OVER (ORDER BY id) AS row, id, username, job, place FROM contact) AS temp WHERE row BETWEEN %d AND %d</code>

4.データ プレゼンテーション

JSTL c:forEach を利用して、JSP ページにサブリストをレンダリングします。

5.ページング コントロール

firstrow と rowcount の非表示フィールドを含むフォームと、次のページと前のページの送信ボタンを含めます。これにより、ユーザーは手動でデータ内を移動できます。

パフォーマンスに関する考慮事項

テーブル全体をメモリにフェッチし、ページネーションのためにセッション スコープに保存することを避けます。このアプローチは、特に大規模な結果セットや複数の同時ユーザーの場合、メモリ リソースに負担をかける可能性があります。代わりに、上で概説したサブリスト クエリのアプローチを使用して、効率的にページ分割します。

以上がデータ管理のために ResultSet を効率的にページ分割するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。