【发布时间】:2018-04-26 11:51:28
【问题描述】:
默认情况下,queryForList() 将每个 for 作为Map<String, Object> 返回。对象可以是普通的String、java.sql.Timestamp等。
List<Map<String, Object>> result = jdbcTemplate.queryForList(sql, params);
问题:我怎样才能将任何值返回为String.class?所以我会有一个Map<String, String>。
我试过了:jdbcTemplate.queryForList(sql, params, Map<String, String>.class)
但该语句似乎无效,无法编译。
【问题讨论】:
-
JdbcTemplate在内部使用JdbcUtils.getResultSetValue(ResultSet, int)从结果集中提取值。它是类型敏感的,因此将 SQL 类型映射到 Java 类型。您可以在 SQL 选择语句中将所有列强制转换为 varchar,也可以按照 @membersound 的建议使用自定义 RowMapper。
标签: java spring spring-jdbc