我在使用下面的 Java 代码时遇到问题。它应该更新表中给定 ID 且 STATUS 列为“良好”的某些记录(在任何给定时间这只是一行)。但是,当我运行下面的代码时,它似乎忽略了 AND STATUS = 'good'
部分,并更新了 ID
处的所有 NUMRECS
> 匹配。
static void insertNumRecs()
{
PreparedStatement insert = null;
try
{
String insertNumRecsCommand = "UPDATE FILESTATUS SET NUMRECS = ? " +
"WHERE ID = ? AND STATUS = 'good'";
insert = Main.con.prepareStatement(insertNumRecsCommand);
insert.setInt(1, Main.numRecs);
insert.setString(2, Main.docID);
insert.executeUpdate();
}
catch (Exception ex) {ex.printStackTrace();}
finally {close(null, insert);}
}
我尝试到处寻找这个问题,但找不到任何答案。当我直接从数据库运行命令时,它工作正常,这让我更加困惑。
提前致谢。
最佳答案
尝试写
"WHERE ID = ? AND STATUS = ?"
并使用
insert.setString(3, "good");
关于java - Java 中具有多个条件的 Oracle UPDATE 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2298419/