java - Java 中具有多个条件的 Oracle UPDATE 命令

标签 java oracle jdbc

我在使用下面的 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/

相关文章:

java - Android 2.3.3 和 google map api v2 启动 Activity 时出错

java - 如何强制客户端使用 Spring Data Rest 发送 etag/版本?

java - Oracle 表同义词的 Hibernate 模式验证失败

java - 使用java向mysql插入数据失败

java - 如何在 Windows 7 上安装 Connector/J?

java - 在 Hibernate 中使用 JPA 注释来描述外键仅在子表中的 @OneToMany 关系

java - Spring MVC 中的文件上传给出 NullPointerException

sql - Oracle 更改表权限不足

sql - 您可以在 select 命令中创建一个 case 语句来评估两个不同的表字段吗?

java - 为什么我们在 JDBC 中使用事务?