gpt4 book ai didi

java - 在 UPDATE 查询中设置 NULL 值,JDBC

转载 作者:行者123 更新时间:2023-11-29 11:19:19 25 4
gpt4 key购买 nike

在以下情况下,如果输入的值不为 NULL,则 UPDATE 查询运行正常。但是,如果为时间变量指定 NULL 值,则查询将无法工作。看起来是什么问题?谢谢。

String sql = "UPDATE table1 SET col1=?, col2=? WHERE col1=? and col2=?";
java.sql.PreparedStatement stmt = conn.prepareStatement(sql); //conn is sql connection to DB

if (time1 != null) stmt.setTimestamp(1, time1); else stmt.setNull(1, java.sql.Types.TIMESTAMP);
if (time2 != null) stmt.setTimestamp(2, time2); else stmt.setNull(2, java.sql.Types.TIMESTAMP);
if (time3 != null) stmt.setTimestamp(3, time3); else stmt.setNull(3, java.sql.Types.TIMESTAMP);
if (time4 != null) stmt.setTimestamp(4, time4); else stmt.setNull(4, java.sql.Types.TIMESTAMP);

stmt.executeUpdate();

最佳答案

问题是 = NULL 永远不会返回 true(从技术上讲,它返回 NULL,被视为 false)。

最简单的解决方案是使用 NULL 安全比较:

where col1 <=> ? and col2 <=> ?

关于java - 在 UPDATE 查询中设置 NULL 值,JDBC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39204206/

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