ホームページ >データベース >mysql チュートリアル >「rs.absolute()」を使用せずに大規模な JDBC 結果セットを効率的にページ分割する方法は?
問題:
大規模な結果セットに対して効率的なページネーションを実装する必要があります。 rs.absolute() または rownum/limit を使用しない JDBC offset.
アプローチ:
JDBC はネイティブでページネーションのサポートを提供しませんが、SQL クエリを変更することで効率的に実装できます。
解決策:
データベース固有のページネーション キーワードを使用する:
特定のデータベース (例: MySQL、PostgreSQL) LIMIT のようなページネーション固有のキーワードを提供しますそしてオフセット。例:
SELECT * FROM data LIMIT 50 OFFSET 0;
行番号付きサブクエリ (Oracle):
Oracle には組み込みのページネーション キーワードがありません。代わりに、ROWNUM 疑似列を含むサブクエリを使用できます。
SELECT * FROM ( SELECT sub_data.*, rownum rnum FROM data sub_data ) WHERE rnum BETWEEN 1 AND 50;
データベース ページネーションの利点:
代替アプローチ:
以上が「rs.absolute()」を使用せずに大規模な JDBC 結果セットを効率的にページ分割する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。