-1

java.sql.ResultSet があり、next() を呼び出して要素 (列) を反復処理することは、コードのパフォーマンスに大きく影響します。メモリ/キャッシュの理由 (ArrayList一度だけ割り当てて add() を呼び出さないので、連続します)。

キャストするさまざまな方法を見てきましたが、うまくいきませんでした。for ループを使用して要素を反復処理したくありません。これは、回避しようとしている next() を呼び出すことになるためです。ResultSet には多くの要素が含まれているため、RS を配列または ArrayList にキャストする方法はありますか?

4

2 に答える 2

0

ResultSetを呼び出す以外にから行を取得する方法はありませんnext()

基礎となる実装は、ユーザーが要求するまで特定の行を具体化しない場合があり、これにはネットワーク トラフィックが含まれる場合があります。合理的な実装では、バッチで行をフェッチし、要求されるまでそれらをキャッシュしますが、結果セットが小さい場合を除き、一度にすべての行をフェッチすることはありません。

于 2013-07-23T20:59:16.133 に答える
0

いいえ、他に方法はありません。問題は呼び出しの使用ではなく.next()、遅いデータベースです。データベースおよび/またはjdbc接続で実行する必要がある最適化がいくつかあるかもしれませんが、実際のユースケースについてさらに多くの詳細を提供する必要があります.

于 2013-07-23T20:58:23.357 に答える