所以我在使用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()
中使用它并且提供所需的输出时很好。
我做错了什么?
答案 0 :(得分:1)
boolean execute(String sql)抛出SQLException
返回:
如果第一个结果是ResultSet对象,则为true;如果它是一个假的 更新计数或没有结果
这里你在execute方法中运行一个更新命令,它将返回更新计数。因此,对于该更新计数,它将返回false。
答案 1 :(得分:0)
我认为你实际上想做int result = stmt.executeUpdate(sql);
,它会返回受影响行的数量,如果更新没有改变任何一行就是0。