2016-07-11 52 views
0

DB-table行のレコード数を調べるには、結果セットを反復せずにjdbcクエリが返されるようにしたいと考えています。ResultSetのサイズを取得する方法

IはResultSet.getFetchSize()を試みた - しかし、私はそれが思ったように動作していない:

 if (rSet.getFetchSize()==0) 
     System.out.println("no results returned"); 
     while (rSet.next()) 
      System.out.println(rSet.getString("transactionID")); 
     rSet.next(); 

上記のコードは、第2コンソールを実行するループ反復になり、その後、第1コンソールメッセージを出力します1+の結果に関するメッセージ。

フェッチされたレコードの数を確認するにはどうすればよいですか? ResultSet.getFetchSize()は何ですか?

// -----------------------------------

EDIT:telling to tell ResultSetの繰り返しなしでこのカウント。これは可能ではないと確信しています。参照されたQへの回答はそう言います。

+3

あなたは結果があることだろうか、大きな知りたい場合は

することは、あなたはCOUNTクエリを実行してみてください'fetchSize'は、ドライバがサーバから要求する行の数を制御します。その結果を反復する。クエリーが返す実際の行数とは何も関係ありません。 –

+0

実際に結果セットの合計行数を知る必要性から離れるようにしてください。それを得るには非常に高価です。移動しながら行を処理するだけです。少なくとも1つの行があるかどうかを確認するには、 'rs.next()'を呼び出し、 'while'ループの代わりに' do..while'ループを使用して残りを処理します。 –

答えて

関連する問題