之间有什么区别execute(String sql)和update(String sql)在JdbcTemplate?
如果我的语句是直接的CRUD而不是对象创建DDL(正如执行javadoc所暗示的那样),那么使用execute和看似更轻量级的更新是否有意义?
MWi*_*ner 19
如果方法的调用成功而没有错误,则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表明正在进行数据操作操作.
希望能帮助到你.