setObject的安全性和null

时间:2013-03-22 23:20:06

标签: java jdbc prepared-statement

PreparedStatement.setObject的Javadoc说只传递null值是不安全的,建议改用setNull,这需要传递列DB类型。

由于在Java中告诉null值的类型并不容易,我想知道是否有任何资源列出了为热门数据库调用setObject和null值的安全性?

1 个答案:

答案 0 :(得分:-1)

oracle的java文档有一个相当有趣的页面。

~is interesting page :)~

阿比纳夫

根据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)。

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