3

私はそれについてあまり知らないので、JavaのPrepared Statementに関連する疑いがあります。

PreparedStatement を使用する必要があるユース ケースがあります。しかし、コードを書く前に次のことを考えています。

while(...)
{
   if(...)
   {
     preparedStatement.setString(1, fname);
     preparedStatement.setString(2, lname); 
      ...
     preparedStatement.addBatch();
   }
}
preparedStatement.executeBatch();

上記のコードを考えてみましょう。いくつかのことを行い、次にいくつかの条件をチェックしてから、準備されたステートメントにバッチを追加する while ループがあります。

1)だから、私の質問は、準備されたステートメントにバッチが追加されていないと仮定し、それでも私は言うexecuteBatch. それは私に例外を与えますか、それともうまく実行されますか?

2) 実行前に準備済みステートメントでバッチをチェックする方法はありますか?

ありがとう。

4

3 に答える 3

2

正常に動作し、空の配列を返すはずです。現在追加されているバッチがあるかどうかを知る唯一の方法は、自分でそれらを追跡することです。

一方、実際に実行したステートメントの数だけを知りたい場合は、返された更新カウントの配列を使用して、実行されたクエリの数を確認し、その中の個々の値を使用して、それぞれが実行されたかどうかを確認できます。成功しました。詳細については、のドキュメントを参照しexecuteBatch()てください。

于 2013-03-05T10:29:58.927 に答える