2014-12-05 67 views
0

我正在開發一個java Spring項目。我正在實施密碼恢復功能。在那裏,我需要比較兩個timestamp值,它們是當前時間和令牌過期時間。爲了從數據庫中檢索到期時間戳值,我使用了這段代碼。使用Spring JDBC模板從數據庫中檢索時間戳值

String sql = "SELECT expiray_time FROM recover_password WHERE token = "+token; 
java.sql.Timestamp ex_time = getJdbcTemplate().queryForObject(sql, java.sql.Timestamp); 

但是java.sql.Timestamp類型不被識別。這種檢索方式錯了嗎? 任何其他從數據庫檢索時間戳數據的方式使用JdbcTemplate

謝謝!

+0

以上用於靜態SQL方法。您需要使用其他方法 queryForObject(String sql,Object [] args,Class requiredType)。按照春季文檔。 – ManojP 2014-12-05 13:26:35

+0

導入java.sql.Timestamp;是否包含在您的項目中? – 2014-12-05 13:30:10

+0

另外檢查:http://stackoverflow.com/questions/17249574/select-date-query-with-time-format-is-not-working-with-jdbctemplate-and-util-dat – 2014-12-05 13:30:35

回答

0

試試下面的代碼:

String sql = "SELECT expiray_time FROM recover_password WHERE token = ?"; 

Object[] args = new Object[] {//token object}; 
Object obj = getJdbcTemplate().queryForObject(sql, args, java.sql.Timestamp); 

或試試這個:

String sql = "SELECT expiray_time FROM recover_password WHERE token = "+token; 
java.sql.Timestamp ex_time = getJdbcTemplate().queryForObject(sql, new Object[] { token } , java.sql.Timestamp); 
+0

既不能正常工作 – vigamage 2014-12-05 16:20:44

相關問題