【问题标题】:Oracle JDBC Types Mapped to Java Object Types by getObject() - wrong document?通过 getObject() 映射到 Java 对象类型的 Oracle JDBC 类型 - 错误的文档?
【发布时间】:2013-01-13 19:50:24
【问题描述】:
这是文档链接:"Mapping SQL and Java Types"
让我们看看 8.9.3 映射到 Java 对象类型的 JDBC 类型
在行:TIMESTAMP - java.sql.Timestamp
但是当我在 TIMESTAMP 列上将 getObject() 与 oracle 数据库一起使用时,返回类型是 oracle.sql.TIMESTAMP,它不能转换为 java.sql.Timestamp
我知道我可以使用 getTimestamp() 但我需要 getObject() 来处理任何类型的结果集。
是文件错了还是我错了?
【问题讨论】:
标签:
java
oracle
jdbc
ojdbc
【解决方案1】:
文档正确,Oracle JDBC驱动有问题。
有两种可能的解决方案:
第一个,使用getObject:
oracle.sql.TIMESTAMP ts = (oracle.sql.TIMESTAMP) res.getObject("last_update");
agent.setLastUpdate(new Date(ts.dateValue().getTime()));
第二个是给你的应用添加一个VM参数:
-Doracle.jdbc.J2EE13Compliant=true
这将使驱动程序返回 java.sql.Timestamp 而不是 oracle.sql.TIMESTAMP。