我面临一个独特的问题。
我正在查询数据库字段,其数据类型(在oracle中)为DATE。我正在从resultSet中检索rs.getObject(“myDate”)的值。我们有两个配置相同的设置。在我编写rs.getObject(“myDate”)。getClass()时的一个设置中,我正在调用java.sql.TimeStamp,而在另一个设置上它返回java.util.Date。我面临的问题是,当它返回一个日期对象时,它忽略了时间并仅返回日期部分。
答案 0 :(得分:1)
我认为可以使用此连接属性控制此行为:
oracle.jdbc.mapDateToTimestamp
请参阅此论坛帖子,例如:
答案 1 :(得分:0)
als info:java.sql.Timestamp是一个java.util.Date,因为它扩展了它。
日期也有时间,虽然它没有纳秒,但这是唯一的区别。
可悲的是,这就是它实施的方式,但不是应该的方式。来自他们自己的文档:
Timestamp
和java.util.Date
之间的继承关系实际上表示实现继承,而不是类型继承。 https://docs.oracle.com/javase/7/docs/api/java/sql/Timestamp.html
这意味着他们懒得写一些封装。这导致许多怪癖,例如哈希码不会改变为纳秒和不对称等于。