使用set Object()代替jdbc中的所有数据类型

时间:2013-12-03 16:13:51

标签: java oracle prepared-statement ojdbc

对于Oracle数据库及其OJDBC中的所有数据类型(如string,int,double ..),我可以使用setObject() PreparedStatement方法吗?

可能重复是:

  

setObject() method of PreparedStatement

但我想知道将它用于Oracle数据库和OJDBC。 有什么可能的问题?

2 个答案:

答案 0 :(得分:2)

可能存在的问题是:

  1. 您要延迟类型验证,直到应用程序执行,并且不利用类型安全。所以在执行过程中你会遇到错误,这些错误很容易在编译时被捕获。
  2. 您无法控制可能推断出类型的方式 在某些情况下会导致奇怪的格式化
  3. 我建议只在绝对必要时使用setObject。

答案 1 :(得分:1)

我遇到的一个问题是null值出现的歧义。在我的应用程序中,这导致数据库正确缓存查询的问题。为避免这种情况,我必须检查值是null并在这些情况下使用#setNull(index, class)

对于非null值,我没有遇到任何问题。