所以我使用jdbc並在更新我的數據庫表後嘗試從execute(sql)方法獲取布爾返回值。以下是代碼:從JDBC獲取布爾值
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();
}
當我在db表檢查,工資已經更新,但execute(sql)
返回一個「假」。 儘管正在完成其工作,但我得到的結果爲'false'。 我檢查了網絡,它說它應該返回'真正'如果工作。 executeUpdate()
返回'沒有受影響的行'罰款時,我用相同的代碼而不是,並提供所需的輸出。 我在做什麼錯?
查找此類問題答案的最佳位置是[JDBC數據庫訪問](https://docs.oracle.com/javase/tutorial/jdbc/)教程和[JavaDocs](https:/ /docs.oracle.com/javase/8/docs/api/java/sql/Statement.html#execute-java.lang.String-) – MadProgrammer
*「我在做什麼錯了?」*您沒有閱讀文檔['execute()'](https://docs.oracle.com/javase/8/docs/api/java/sql/Statement.html#execute-java.lang.String-),因爲它說:* **如果第一個結果是ResultSet對象,則返回** true; **如果是更新計數**,或者沒有結果*,則爲false。 ---如果你想更新計數,你應該調用['executeUpdate()'](https://docs.oracle.com/javase/8/docs/api/java/sql/Statement.html#executeUpdate-java .lang.String-):*返回行數*。 – Andreas
這與[PL/SQL](https://stackoverflow.com/tags/plsql/info)或[PL/SQL Developer](https://stackoverflow.com/tags/plsqldeveloper/info)有什麼關係? ? –