【发布时间】:2019-06-04 12:35:14
【问题描述】:
我有这个在 ecplise 中不起作用的预先准备好的语句,但是对于工作台来说还可以,我该怎么办?
public void aggiornaArma(Arma Armi) throws SQLException {
PreparedStatement myStmt = null;
try {
myStmt=myConn.prepareStatement("update arma"
+"set danni=?,Descrizione=?,costo=?,impugnatura=?,tipo=?"
+" where nome=?");
myStmt.setInt(1, Armi.getDanni());
myStmt.setString(2,Armi.getDescrizione());
myStmt.setInt(3,Armi.getCosto());
myStmt.setString(4, Armi.getImpugnatura());
myStmt.setString(5,Armi.getTipo());
myStmt.setString(6,Armi.getNome());
myStmt.executeUpdate();
}
【问题讨论】:
-
您的查询中
arma和set之间没有空格。 -
您假设您编写的代码生成的 SQL 代码与您手动输入 SQL Workbench 的 SQL 代码相同。这个假设是错误的。始终验证,从不假设。