gpt4 book ai didi

java - Spring SQLUpdate 将时间为零的日期插入数据库

转载 作者:行者123 更新时间:2023-11-29 05:43:13 25 4
gpt4 key购买 nike

我正在使用 org.springframework.jdbc.object.SqlUpdate 将日期插入数据库。我使用 HSQL 进行本地测试,使用 Oracle 在服务器上进行测试。

这是我的 SQLUpdate 类:

private class SQLInsertHistory extends SqlUpdate implements Serializable {
private static final long serialVersionUID = 1L;

public SQLInsertHistory(DataSource ds) {
setDataSource(ds);
setSql(INSERT_HISTORY_ENTRY);
declareParameter(new SqlParameter(Types.DATE)); // EXECUTING_DATE
declareParameter(new SqlParameter(Types.VARCHAR)); // EXECUTING_USER
declareParameter(new SqlParameter(Types.VARCHAR)); // FILENAME
declareParameter(new SqlParameter(Types.VARCHAR)); // MD5_CHECKSUM
declareParameter(new SqlParameter(Types.INTEGER)); // SUCCESSFULL_FLAG
declareParameter(new SqlParameter(Types.INTEGER)); // NEW_INSTITUTION_FLAG
declareParameter(new SqlParameter(Types.VARCHAR)); // FREE_TEXT
declareParameter(new SqlParameter(Types.VARCHAR)); // ENTRY_TYPE
compile();
}

public void insertHistoryEntry(HistoryEntryContainer entry) {

Object[] values = new Object[] {
new java.sql.Date(entry.getDate().getTime()), // EXECUTING_DATE
entry.getExecutingUser(), // EXECUTING_USER
entry.getFileName(), // FILENAME,
entry.getMd5(), // MD5_CHECKSUM
(entry.isSuccess() ? 1 : 0), // SUCCESSFULL_FLAG
(entry.isNewInstitution() ? 1 : 0), // NEW_INSTITUTION_FLAG
entry.getFreeText(), // FREE_TEXT
entry.getType().toString() };
update(values);
log.debug((entry.isSuccess() ? "Successfull " : "Unsuccessfull ")
+ entry.getType().toString() + " of File "
+ entry.getFileName() + " recorded in DB.");
}

}

现在执行工作正常,但它始终存储时、分和秒 = 0 的日期。知道该怎么做吗?

最佳答案

您正在使用 Types.DATE,其中仅包含 DATE 而不包含 TIME,请使用 Types.TIMESTAMP

使用:new java.sql.Timestamp(entry.getDate().getTime())new java.sql.Date(entry. getDate().getTime()),//执行日期

关于java - Spring SQLUpdate 将时间为零的日期插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16808314/

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