有没有办法得到一个 java.time (Java 8 中的新功能)来自 ResultSet
的兼容时间类?
我知道你可以使用 ResultSet
的 getDate
或 getTimestamp
但这些方法返回 java.sql.Date
/java.sql.Timestamp
现在已弃用的对象,因此使用它们来创建 ZonedDateTime
似乎是不好的做法。或类似。
最佳答案
大多数数据库供应商不支持 JDBC 4.2然而。此 specification说新java.time
-类型如 LocalDate
将/应该使用现有方法支持 setObject(...)
和 getObject()
.不需要和提供显式转换(无 API 更改)。
缺少支持的解决方法可以是手动转换,如 Derby-mailing list 中所述。 .
就像是:
LocalDate birthDate = resultSet.getDate("birth_date").toLocalDate();
如您所见,这些转换使用了未弃用的类型
java.sql.Date
等,另见 javadoc .
关于java-8 - 从 ResultSet 获取日期以用于 java.time 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29773390/