1

我编写了以下方法来在数据库中执行更新语句:

 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 语句)?

4

2 回答 2

5

看起来像一个未封闭的报价问题?

name='updatedname and address
于 2013-02-01T17:46:32.263 回答
2

我可能是错的,但也许声明应该是

UPDATE employee set name='updatedName' , address='updatedaddress' where id=(?)

代替

UPDATE employee set name='updatedName' and address='updatedaddress' where id=(?)

and只能在 where 子句中使用。

于 2013-02-02T01:27:01.920 回答