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 サイトの他の関連記事を参照してください。