我编写了以下方法来在数据库中执行update语句:
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语句)?
答案 0 :(得分:5)
看起来像一个未公开的报价问题?
name='updatedname and address
答案 1 :(得分:2)
我可能错了,但也许声明应该是
UPDATE employee set name='updatedName' , address='updatedaddress' where id=(?)
而不是
UPDATE employee set name='updatedName' and address='updatedaddress' where id=(?)
and
只能在where子句中使用。