Java SpringSQLUpdate将时间为零的日期插入数据库
我使用org.springframework.jdbc.object.SqlUpdate将日期插入数据库。我使用HSQL进行本地测试,使用Oracle在服务器上进行测试 这是我的SQLUpdate类:Java SpringSQLUpdate将时间为零的日期插入数据库,java,spring,oracle,Java,Spring,Oracle,我使用org.springframework.jdbc.object.SqlUpdate将日期插入数据库。我使用HSQL进行本地测试,使用Oracle在服务器上进行测试 这是我的SQLUpdate类: private class SQLInsertHistory extends SqlUpdate implements Serializable { private static final long serialVersionUID = 1L; public SQLInsert
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的形式存储日期。你知道怎么做吗?你使用的是
类型。DATE
只包括日期而不包括时间,请使用
使用:new java.sql.Timestamp(entry.getDate().getTime())
在new java.sql.Date(entry.getDate().getTime()),//EXECUTING_Date