2016-09-12 12 views
4

execute(String sql)update(String sql)の違いはJdbcTemplateですか?Spring JdbcTemplateがvs更新を実行する

私のステートメントがストレートCRUDであり、オブジェクト作成DDL(javadocの実行が暗示しているように)ではない場合は、もっと軽量のupdateを実行するのが理にかなっていますか?

答えて

9

メソッドexecute(String sql)は、メソッドの呼び出しがエラーなしで成功した場合はvoidを返します。 (execute(..) JavaDocを参照してください)。プレーンJDBCの場合は、CREATE TABLE ...ステートメントなどのデータベーススキーマ要素(DDL)の定義に使用する必要があります。

対照的に、update(String sql)は、通常、SQL INSERT/UPDATE/DELETE操作に対応するDML文に使用されます。データが操作されるこれらの場合、プログラマの観点から、それぞれのDML操作によって追加/変更/削除された行の数を知ることが重要です。

戻り値: のJavaDocは、用語を使用することによって示したよう行の数が

に影響を与えたこのような理由から、update(...)方法は、あなたが知っているようにする非負intの値を返します

ただし、返されるintの値を使用せずにデータを操作するには、execute(String sql)を使用します。理論的には、また一部のDBMS実装では、戻り値を転送する必要がないため、この呼び出しは数ナノ秒早くなる可能性があります。

しかし、個人的にもプログラマの観点からも、DDL文とDML文の違いを念頭に置いて両方の操作を使用する必要があります。その理由は、updateがデータ操作操作を実行していることを示しているからです。

希望、それは役に立ちます。

関連する問題