2013-05-29 57 views
1

我正在使用org.springframework.jdbc.object.SqlUpdate將日期插入到數據庫中。我使用HSQL進行本地測試,使用Oracle進行服務器測試。Spring SQLUpdate將零時間的日期插入到數據庫中

這是我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。任何想法做什麼日期?

回答

3

您正在使用Types.DATE只包括DATE,而不是時間,使用Types.TIMESTAMP

用途:new java.sql.Timestamp(entry.getDate().getTime())時間轉換成時間戳在地方new java.sql.Date(entry.getDate().getTime()), // EXECUTING_DATE

+0

感謝的人,是解決它。 – olkoza

相關問題