4

PreparedStatement.setObject的 Javadoc 说只传递空值是不安全的,并建议使用 setNull 代替,这需要传递列 DB 类型。

由于在 Java 中判断空值的类型并不是一件容易的事,我想知道是否有任何资源列出了为流行的数据库调用带有空值的 setObject 的安全性?

4

1 回答 1

-1

oracle 的 java docs 上有一个相当有趣的页面。

~是有趣的页面:)~

阿比纳夫

根据 EJP 的评论编辑:

根据 Java 文档,以下 setObject 声明更好并推荐:

void setObject(int parameterIndex, Object x, int targetSqlType)

注意:并非所有数据库都允许将非类型 Null 发送到后端。为了获得最大的可移植性,应该使用 setNull 或 setObject(int parameterIndex, Object x, int sqlType) 方法来代替 setObject(int parameterIndex, Object x)。

可以使用上面链接的映射列表来识别对象类型。

于 2013-03-22T23:41:17.253 回答