6

这是文档链接:“映射 SQL 和 Java 类型”

让我们看看 8.9.3 JDBC 类型映射到 Java 对象类型的行:TIMESTAMP - java.sql.Timestamp

但是当我在 TIMESTAMP 列上将 getObject() 与 oracle 数据库一起使用时,返回类型是 oracle.sql.TIMESTAMP,它不能转换为 java.sql.Timestamp

我知道我可以使用 getTimestamp() 但我需要 getObject() 来处理任何类型的结果集。

文件错了还是我错了?

4

1 回答 1

2

文档是正确的,是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.

于 2013-02-13T20:48:03.790 回答