PreparedStatement.setObject的Javadoc说只传递null值是不安全的,建议改用setNull,这需要传递列DB类型。
由于在Java中告诉null值的类型并不容易,我想知道是否有任何资源列出了为热门数据库调用setObject和null值的安全性?
答案 0 :(得分:-1)
oracle的java文档有一个相当有趣的页面。
阿比纳夫
根据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)。
可以使用上面链接的映射列表来识别对象类型。