gpt4 book ai didi

java - 在 Java 中执行 SQL 批量更新,如果传入的 parm 为 null,则不会更新字段

转载 作者:太空宇宙 更新时间:2023-11-04 08:03:27 25 4
gpt4 key购买 nike

如果传入的参数值为空,如何创建不会更新列的批量更新?例如:

String UPDATE_STMT = "UPDATE MY_TABLE SET col1 = ?, col2 = ?, col3 = ?";
Connection conn = getConnection();
PreparedStatement pstmt = conn.preparedStatement(UPDATE_STMT);

List items = getItems();
for (ItemType item : items) {

stmt.setString(1, item.x);
stmt.setString(2, item.y);
stmt.setString(3, item.z);
}

pstmt.executeBatch();

如何对其进行编码,以便在 item.x 不为 null 或为空的情况下,仅使用 item.x 的值更新 col1?如果 item.x 为 null/空,我不希望覆盖 col1 字段中的当前值。这是针对 Oracle 10g 数据库的。

最佳答案

我想它应该适合你:

String UPDATE_STMT = "UPDATE MY_TABLE SET col1 =   
CASE WHEN ? IS NULL THEN col1 ELSE ? END, col2 = ?, col3 = ?";

注意,现在需要设置 item.x 两次,stmt.setString(1, item.x); stmt.setString(2, item.x);

关于java - 在 Java 中执行 SQL 批量更新,如果传入的 parm 为 null,则不会更新字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12463359/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com