2014-12-05 25 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

相关问题