为什么PreparedStatement.setNull需要sqlType?
根据PreparedStatement.setNull的Java文档,“注意:您必须指定参数的SQL类型”。该方法需要列的SQL类型的原因是什么?
我注意到传递java.sql.Types.VARCHAR还可用于非varchar列。是否存在不适合使用VARCHAR的方案(某些列类型或某些数据库提供程序)?
谢谢。
回答:
根据PreparedStatement.setNull的Java文档,“注意:您必须指定参数的SQL类型”。该方法需要列的SQL类型的原因是什么?
为了最大程度的兼容性;根据规范,有些数据库不允许将无类型的NULL发送到基础数据源。
我注意到传递java.sql.Types.VARCHAR还可用于非varchar列。是否存在不适合使用VARCHAR的方案(某些列类型或某些数据库提供程序)?
我不认为某种行为确实是规范的一部分,或者如果它是规范的一部分,那么我确定那里存在某种隐性强制。无论如何,不建议依赖这种行为,这种行为在基础数据存储区更改时可能会中断。为什么不只指定正确的类型?
以上是 为什么PreparedStatement.setNull需要sqlType? 的全部内容, 来源链接: utcz.com/qa/398652.html