getSimpleJdbcTemplate().query(sql, getMapper());
返回List,但是我需要一个Map,其中key将是对象字段之一的存储数据。例如,我有一个名为“Currency”的对象,其中包含字段:id,code,name等。上面的代码将返回List对象,但我想从Map获取id的货币。现在,我写了以下代码:
@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对象并在其中循环?
答案 0 :(得分:2)
您有ResultSetExtractor
从ResultSet
中提取值。因此,在您的情况下,您可以编写一个自定义的ResultSetExtractor,它将返回Map对象。