gpt4 book ai didi

java - 如何在使用 spring jdbc 模板获取时自动格式化时间戳列?

转载 作者:行者123 更新时间:2023-11-29 05:14:07 26 4
gpt4 key购买 nike

我正在使用 spring jdbc 通过以下方式从数据库中获取数据

JdbcTemplate jdbc=new JdbcTemplate(ds);
List<Map<String,Object>> resultSet=jdbc.queryForList(dsDetailsIN.get("query").toString());

其中 ds 是数据源对象。

由于我不知道结果集列的数据类型,因此具有 DATETIME 数据类型的列被转换为 java 日期格式。但是,如果日期/日期时间/时间戳列的格式合适,我想自动格式化数据列。

最佳答案

使用自定义 RowMapper 考虑此代码而不是简单的 queryForList():

    JdbcTemplate jdbc = new JdbcTemplate(ds);
List<Map<String,Object>> resultSet =
//Use a custom RowMapper
jdbc.query(dsDetailsIN.get("query").toString(), new RowMapper<Map<String,Object>>() {

@Override
public Map<String, Object> mapRow(ResultSet rs, int rowNum) throws SQLException {
//The map per row
Map<String,Object> map = new HashMap<String,Object>();
//The target date format
DateFormat nice = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//Iterating the columns.
ResultSetMetaData meta = rs.getMetaData();
for(int i = 1; i <= meta.getColumnCount(); ++i) {
Object o = rs.getObject(i);
//If a date use formatted String instead
if(o instanceof Date) {
o = nice.format(o);
}
//put into map.
map.put(meta.getColumnName(i), o);
}
return map;
}

});

关于java - 如何在使用 spring jdbc 模板获取时自动格式化时间戳列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35483762/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com