【问题标题】:Spring JdbcTemplate execute vs updateSpring JdbcTemplate 执行与更新
【发布时间】:2016-09-12 16:06:16
【问题描述】:

JdbcTemplate中的execute(String sql)update(String sql)有什么区别?

如果我的语句是直接的 CRUD 而不是对象创建 DDL(正如执行 javadoc 所暗示的那样),使用执行与看似更轻量级的更新是否有意义?

【问题讨论】:

    标签: spring jdbc


    【解决方案1】:

    如果方法调用成功且没有错误,则方法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 本质上表示正在执行数据操作操作。

    希望,它会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多