0

Eclipse IDE でデバッグ中に res.next() を呼び出すと、結果セット ポインターの動きに関する問題に直面しています。

コード:

   query="Select * from emp"
    res=stmt.executeQuery(query);
    System.out.println("Statement executed");
    System.out.println("-----------------------");
    int count=0;
    while(res.next()){
    count++;
    //some useful code
    }

クエリを実行すると、2 つのレコードが返されます。したがって、プログラムを正常に実行すると、while ループの終了後にカウント値が 2 になります。これは望ましい結果ですが、Eclipse で同じコードをデバッグしようとすると、while ループが終了した後もカウント値は 0 のままです。これは、制御が行われていないことを意味します。 while ループに入りますが、テーブルに 2 つのレコードがあることを確認してください。ここで何が問題になるでしょうか?

4

1 に答える 1

1

その理由がわかりました。

私はデバッグ式を持っていたres.next(); ので、F6(Eclipseデバッグモードで次のステートメントに移動するキー)を押すたびにステートメントが実行されていたので、whileループに来るまでにステートメントが3回実行され、実際の結果セットポインターが発生しました最後の位置の後に移動します。

res.next() をデバッグ モードにした理由は、それが true を返すかどうかを確認するためでした。

デバッグ モードで式を追加するときは注意が必要です。上記のステートメントだけでなく、プレインクリメントやポストインクリメントなどのステートメント、または変数に新しい値を割り当てる式も含まれます。これは、デバッグ式がプログラムにある実際の変数で実際に機能するためです。

于 2012-11-12T10:18:29.920 に答える