簡體   English   中英

JDBC和MySQL,如何將java.util.Date持久化到DATETIME列?

[英]JDBC and MySQL, how to persist java.util.Date to a DATETIME column?

我很難理解如何讓它發揮作用。 我有一個准備好的語句,我想堅持java.util.date。 它不起作用。 我試圖把它強制轉換為java.sql.Date,它仍然無法正常工作。 java日期框架的問題是什么,它真的不是直截了當的。

您應該使用java.sql.TimestampDATETIME字段中存儲java.util.Date 如果你檢查兩個類的javadocs(點擊上面的鏈接!),你會看到Timestamp有一個構造函數花費時間毫秒,而Date有一個getter以毫秒為單位返回時間。

算一算:

preparedStatement.setTimestamp(index, new Timestamp(date.getTime()));
// ...

應該使用java.sql.Date ,因為它僅代表日期部分,沒有時間部分。 這樣,您將在DATETIME字段中以00:00:00結束時間。

僅供參考,因為Timestampjava.util.Date的子類,所以只要從ResultSet獲取它,就可以將其向上轉換。

Date date = resultSet.getTimestamp("columnname");
// ...

這樣做:

int dateColumnId = 0; // or whatever the value needs to be.
java.util.Date incomingValue = new java.util.Date(System.currentTimeMillis());
java.sql.Date databaseValue = new java.sql.Date(incomingValue.getTime());   
ps.setDate(dateColumnId, databaseValue);

也許你可以試試這個:

java.util.Date now = new java.util.Date();
java.sql.Date date = new java.sql.Date(now.getTime());
pstmt.setDate(columnIndex,date);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM