gpt4 book ai didi

java - 如何避免使用 PreparedStatement.setNull?

转载 作者:行者123 更新时间:2023-11-29 12:32:41 28 4
gpt4 key购买 nike

我的数据库中有一个非常大的表。其中一些字段可能为空。

我只想避免使用:

PreparedStatement.setNull(index, Type.X)

喜欢:

if(obj.getSomaData() == null){
insertStmt.setNull(++i, java.sql.Types.VARCHAR);
}else{
insertStmt.setString(++i, obj.getSomaData());
}

有更好更简洁的方法吗?

附言:我正在使用 PostgreSQL。

最佳答案

setNull 的主要用例是将原始类型设置为 null,以及处理驱动程序无法知道参数的数据类型并需要明确指示的一些边缘情况。

在大多数情况下,您应该能够很好地使用setString(idx, null)(或另一种对象类型的setXXX)。

引用 JDBC 4.2 第 13.2.2.4 节:

If a Java null is passed to any of the setter methods that take a Java object, the parameter will be set to JDBC NULL.

“未类型化”null(例如使用 setObject)是一个异常(exception),建议您使用 setNull 以获得最大的可移植性code> 或采用类型参数的 setObject,因为并非所有数据库都支持没有类型信息的类型。

关于java - 如何避免使用 PreparedStatement.setNull?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40664176/

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