2012-01-09 4 views
9

これは2つの方法、のexecuteUpdateのうちとを実行すると、insert into users(name, addr, city, sex, dob) values(?,?,?,?,?);状挿入クエリのための最高の一つです両方の文がクエリを実行しますが、その1は、理想的には、INSERTクエリのために使用する必要がありますか?教えてください何を使用するか:executeUpdate()またはexecute()?

+0

[PreparedStatementはOracleで正常に実行されていますが、Microsoft SQLでは例外がスローされます]という重複があります。(http://stackoverflow.com/questions/8786911/preparedstatement-executing-successfully-in-oracle-but-throwing-exception-in-マイク) – axtavt

+0

それぞれについてjavadocを読んだことがありますか?答えはそこにあります。 – skaffman

答えて

14

戻り値は異なります。 ExecuteUpdate()は、更新された行の数を返します。これは、更新ステートメントの実行時に役立ちます。あなたが挿入しているレコードの数を知っているので、あなたの場合は必要ありません。いずれかを使用することができます。

+0

そういうもののどちらかを使うのに利点はありませんか?この場合、どのメソッドが正しく使用されているかは関係ありませんか? –

+0

それは問題ではありません。 – Sjoerd

+0

ありがとうございます:) –

2

原則として戻り値のみが異なります。しかし、jConnect 3を使用してSybase ASE 15.7にアクセスすると、トリガーが実行されてPreparedStatementをすぐに閉じるまでexecute()関数がブロックされないことがわかりました。 (1秒のスリープを挿入すると、私が試した1つのクエリでうまくいきます)。対照的に、executeUpdate()はこの問題を抱えません。それは正しいことをするように見え、PreparedStatementを閉じる前に任意の睡眠を必要としません。

関連する問題