从JdbcTemplate返回结果作为Map

时间:2014-10-14 22:27:46

标签: java sql jdbctemplate

我想知道是否有简单的方法可以使用JdbcTemplate为查询生成Map。我有一个返回两列的查询,所以我想直接从结果中制作地图。

SQL查询:

SELECT id, name FROM mytable WHERE somecol='someval';

预期地图:

{123,ABC},{456,DEF} .... {890, XYZ}

2 个答案:

答案 0 :(得分:2)

是的,可以使用JdbcTemplate返回column-name:column-value对的映射,但您在问题中描述的内容不是实际的映射。

public List<Map<String, Object>> getList() {
    return this.jdbcTemplate.queryForList("SELECT id, name FROM mytable");
}

会回来:

[{'id': 123, 'name': 'ABC'}, {...}, ... ]

有关详情,请参阅official documentation

答案 1 :(得分:0)

我认为您可以使用this而不是JDBCTemplate。并使用方法queryForMap。 而你的参数就是这样的:

SqlParameterSource namedParameters = new MapSqlParameterSource("somecol",someval);