gpt4 book ai didi

java - PreparedStatement setnull 方法中 Types.INTEGER 和 Types.NULL 的区别

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:04:21 24 4
gpt4 key购买 nike

下面的语句有什么区别。

PreparedStatement.setNull(1, java.sql.Types.NULL);

PreparedStatement.setNull(1, java.sql.Types.INTEGER);

最佳答案

第一个指示驱动程序将 null 值作为 NULL 类型发送,而另一个作为 INTEGER 类型发送。这有时在像 ? 这样的条件下是必要的。 IS NULL OR someIntegerColumn = ? 第一个参数是 NULL 类型,而第二个参数是 INTEGER 类型。

然而,确切的区别取决于数据库驱动程序:一些数据库/驱动程序始终使用服务器在准备时指定的类型(并且驱动程序从其他类型转换为该类型),而其他数据库/驱动程序则需要或允许在指定应用程序端的类型(然后数据库转换为实际的本地类型)。如果服务器不支持服务器端准备好的语句,这甚至可能是必要的。

指定类型实际上可能有微妙的含义:可能一个会导致转换错误,而另一个不会,或者后续转换的行为因类型转换规则而不同。我实际上并没有意识到这种情况在实践中发生。

关于java - PreparedStatement setnull 方法中 Types.INTEGER 和 Types.NULL 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23801449/

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