这是文档链接:"Mapping SQL and Java Types"
让我们看看8.9.3映射到Java对象类型的JDBC类型 在行:TIMESTAMP - java.sql.Timestamp
但是当我在TIMESTAMP列上使用带有oracle数据库的getObject()时,返回类型是oracle.sql.TIMESTAMP,它不能被强制转换为java.sql.Timestamp
我知道我可以使用getTimestamp()但是我需要getObject()来处理任何结果集而不管其类型。
文件是错还是我?
答案 0 :(得分: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
。