注意不要这样用 jdbcTemplate 取数据库中的 TIMESTAMP 日期,这样返回的日期会是当前日期,而不是数据库中查询出来的日期。
如数据库字段 create_time 为 TIMESTAMP 类型:
import java.util.Date;
String sql = "SELECT MAX(mtm.create_time) FROM t_message mtm";
Date result = jdbcTemplate.query(sql, paramMap, new BeanPropertyRowMapper<T>(Date.class));
// 上面那样写其实就相当于这样,无论数据库中是否能查询出结果
// Date result = new Date();
应该改成这样:
String sDate = jdbcTemplate.query(sql, paramMap, new BeanPropertyRowMapper<T>(String.class));
Date result = DateUtil.parse(sDate);
具体原因我尝试跟了一下代码,但感觉太复杂,跟不下去。。。
有知道具体原因的请告知,
谢谢!