0

getSimpleJdbcTemplate().query(sql, getMapper());返回列表,但我需要一个映射,其中键将存储对象字段之一的数据。例如,我有一个名为“货币”的对象,其中包含字段:id、代码、名称等。上面的代码将返回 List 对象,但我想通过 id 从 Map 获取货币。现在,我编写了以下代码:

@Override
public Map<Integer, Currency> listCurrencies() {
    String sql = "select cur_id, cur_code, cur_name ... from currencies";

    List<Currency> currencies = getSimpleJdbcTemplate().query(sql, getMapper());
    Map<Integer, Currency> map = new HashMap<Integer, Currency>(currencies.size());

    for (Currency currency : currencies) {
        map.put(currency.getId(), currency);
    }

    return map;
}

有没有办法做同样的事情,但不创建 List 对象并在其中循环?

4

1 回答 1

2

您必须ResultSetExtractorResultSet. 因此,在您的情况下,您可以编写一个自定义 ResultSetExtractor ,它将返回 Map 对象。

于 2012-04-19T06:56:31.337 回答