从JDBC获取布尔值

时间:2017-04-07 06:41:08

标签: java sql oracle jdbc

所以我在使用jdbc并尝试在更新我的db表后从execute(sql)方法获取布尔返回值。以下是代码:

try{
    Statement stmt = conn.createStatement();
    String sql = "update emp_earnings set salary = 6400 where lower(name)= 'bob'";
    Boolean result = stmt.execute(sql);
    System.out.println("rows affected (Y/N): " + result );
}catch(Exception e){
    System.out.println("some error in second");
    e.printStackTrace();

}

当我签入我的数据库表时,工资已更新,但execute(sql)已返回错误的'。 我得到一个输出' false'尽管execute()正在努力工作。 我检查了网,它说它应该返回' true'如果工作。 executeUpdate()会返回“受影响的行数”字样'当我在相同的代码而不是execute()中使用它并且提供所需的输出时很好。 我做错了什么?

2 个答案:

答案 0 :(得分:1)

来自documentation

  

boolean execute(String sql)抛出SQLException

     

返回:

     

如果第一个结果是ResultSet对象,则为true;如果它是一个假的   更新计数或没有结果

这里你在execute方法中运行一个更新命令,它将返回更新计数。因此,对于该更新计数,它将返回false。

答案 1 :(得分:0)

我认为你实际上想做int result = stmt.executeUpdate(sql);,它会返回受影响行的数量,如果更新没有改变任何一行就是0。