gpt4 book ai didi

java - 如何将对象的 sql 时间转换为 java 时间?

转载 作者:行者123 更新时间:2023-12-02 10:30:36 26 4
gpt4 key购买 nike

当我运行此代码时,它会显示以下内容:

Error:(43, 31) java: incompatible types: java.sql.Time cannot be converted to java.time.LocalTime

public TrackTime read(int id){

rs = jdbc.queryForRowSet("SELECT * FROM tracktime where id ='" + id + "'");
while (rs.next()){
return new TrackTime (rs.getInt("id"),
rs.getDate("date"),
rs.getTime("startTime"),
rs.getTime("endTime"),
rs.getString("licenseType"),
rs.getInt("trackNumber"));
}

return new TrackTime();
}

导致此错误的原因是什么?

最佳答案

正如其他人已经说过的,这一定是因为 TrackTime 构造函数需要 LocalTime 类型的参数,而 rs.getTime 返回 java.sql.Time.

假设 JDBC 4.2(或更高版本;您可能拥有该版本),请使用 getObject 检索 java.time 类,例如 LocalTimeLocalDate从您的结果集中:

    return new TrackTime (rs.getInt("id"),
rs.getObject("date", LocalDate.class),
rs.getObject("startTime", LocalTime.class),
rs.getObject("endTime", LocalTime.class),
rs.getString("licenseType"),
rs.getInt("trackNumber"));

我还自由地更改了日期的检索,这可能会给您带来新的编译时错误。但既然您已经在使用 java.time,那么更改 TrackTime 构造函数以接受 LocalDate 可能会更好?

如果您的 JDBC 驱动程序尚未兼容 JDBC 4.2,请考虑升级。

关于java - 如何将对象的 sql 时间转换为 java 时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53634685/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com