2016-09-12 3 views
4

Was ist der Unterschied zwischen execute(String sql) und update(String sql) in JdbcTemplate?Spring JdbcTemplate Ausführung vs Update

Wenn meine Aussage ist eine gerade CRUD und nicht eine Objekterstellung DDL (wie das Ausführen von javadoc impliziert), macht es Sinn, gegen das scheinbar leichtere Update auszuführen?

Antwort

9

Die Methode execute(String sql) gibt void zurück, wenn ein Aufruf der Methode ohne Fehler erfolgreich ist. (siehe execute(..) JavaDoc). Wie für JDBC, sollte/kann es verwendet werden, um Datenbankschemaelemente (DDL) zu definieren, zum Beispiel mit CREATE TABLE ... Anweisungen.

Im Gegensatz dazu wird update(String sql) normalerweise für DML-Anweisungen verwendet, die SQL INSERT/UPDATE/DELETE-Operationen entsprechen. In diesen Fällen, in denen Daten manipuliert werden, ist es aus der Sicht eines Programmierers wichtig zu wissen, wie viele Zeilen durch die jeweilige DML-Operation hinzugefügt/geändert/gelöscht wurden.

Aus diesem Grund gibt die update(...) Methode einen nicht negativen int Wert, den Sie wissen zu lassen:

Returns: die Anzahl der Zeilen

betroffen

Wie der JavaDoc gibt an, um mit dem Begriff "Normalerweise" in seiner Beschreibung könnten Sie jedoch execute(String sql) verwenden, um Daten zu bearbeiten, ohne den zurückgegebenen int-Wert verwenden zu müssen. In der Theorie und für einige DBMS-Implementierungen könnte dieser Aufruf einige Nanosekunden schneller sein, da kein Rückgabewert übertragen werden muss.

Aus meiner persönlichen Sicht und aus der Perspektive eines Programmierers sollten Sie beide Operationen mit dem Unterschied zwischen DDL und DML-Anweisungen im Hinterkopf verwenden, da durch ihre Natur update eine Datenmanipulationsoperation signalisiert wird.

Hoffe, es hilft.

Verwandte Themen