我寫了下面的方法來執行數據庫中的更新語句:SQL異常:參數指標超出範圍
public boolean updateEmployee(int id){
try {
String update="UPDATE employee set name='updatedName' and address='updatedaddress' where id=(?)";
pst=connection.prepareStatement(update);
pst.setInt(1, id);
pst.executeUpdate();
} catch (SQLException ex) {
Logger.getLogger(DAO.class.getName()).log(Level.SEVERE, null, ex);
return false;
}
return true;
}
但出現以下異常:
java.sql.SQLException: Parameter index out of range (1 > number of parameters, which is 0).
而此異常也扔:
com.mysql.jdbc.MysqlDataTruncation: Data truncation: Truncated incorrect DOUBLE value: 'UpdatedName'
這裏有什麼問題?另外,如何返回更新語句的結果(因爲executeQuery
不適用於DML語句)?
你爲什麼使用這個「id =(?)」?只是「id =?」是不足夠的? 我並不是說這是錯的,好嗎?這是因爲我不記得JDBC PreparedStatements中的參數。從我記得,括號是沒有必要的... –