execute(String sql)
和update(String sql)
在JdbcTemplate
之間有什麼區別?彈簧JdbcTemplate執行與更新
如果我的陳述是直接CRUD
而不是對象創建DDL(如執行javadoc所暗示的),使用execute還是看起來更輕量級的更新有意義嗎?
execute(String sql)
和update(String sql)
在JdbcTemplate
之間有什麼區別?彈簧JdbcTemplate執行與更新
如果我的陳述是直接CRUD
而不是對象創建DDL(如執行javadoc所暗示的),使用execute還是看起來更輕量級的更新有意義嗎?
如果該方法的調用沒有錯誤,則方法execute(String sql)
返回void
。 (請參閱execute(..) JavaDoc)。至於普通JDBC,它應該/可以用來定義數據庫模式元素(DDL),例如CREATE TABLE ...語句。
相比之下,update(String sql)
通常用於對應於SQL INSERT/UPDATE/DELETE操作的DML語句。在這些情況下,從程序員的角度來看,操作數據的過程中,知道有多少行被相應的DML操作添加/更改/刪除非常重要。
出於這個原因,update(...)方法返回一個非負int
值,讓你知道:
返回: 行數用術語影響
javadoc的指示「典型」在其描述中,但是,您可以使用execute(String sql)
來操作數據,而無需使用返回的int
值。在理論上,對於一些DBMS實現,這個調用可能會更快一些,因爲沒有返回值需要傳輸。然而,從我個人和程序員的角度來看,你應該使用DDL和DML語句不同的兩種操作,因爲它的本質是update
表示正在進行數據操作操作。
希望它有幫助。