在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语句中的条件而不更新任何内容?
答案 0 :(得分:2)
if (stmt.executeUpdate(sql) != 1)
如果表达式stmt.executeUpdate(sql) != 1
为真,则执行if块的主体。所以Java必须评估这个表达式。
此表达式将{{>>返回值stmt.executeUpdate(sql)
与-1进行比较。为了能够知道stmt.executeUpdate(sql)
返回的值,它必须执行该方法。
所以是的,这会执行方法。