executeUpdate方法是否在if-statment条件下运行?

时间:2015-09-29 19:07:20

标签: java sql jdbc

在IF条件中使用Statement.executeUpdate(String sql)方法,它是否真的在数据库上执行SQL?

例如:

void update(Statement stmt){
  String sql = "UPDATE room SET chairs=2 WHERE id=1";
  if (stmt.executeUpdate(sql) != 1) throw Exception;
  sql = "SELECT name FROM room WHERE id=1";
  result = stmt.executeQuery(sql);
}

executeUpdate(sql)部分实际上是运行和更新数据库还是只检查IF语句中的条件而不更新任何内容?

1 个答案:

答案 0 :(得分:2)

if (stmt.executeUpdate(sql) != 1) 

如果表达式stmt.executeUpdate(sql) != 1为真,则执行if块的主体。所以Java必须评估这个表达式。

此表达式将{{>>返回值stmt.executeUpdate(sql)与-1进行比较。为了能够知道stmt.executeUpdate(sql)返回的值,它必须执行该方法。

所以是的,这会执行方法。