【问题标题】:Are there simple way to receive Map instead of List when using Spring JdbcTemplate.query?使用 Spring JdbcTemplate.query 时是否有简单的方法来接收 Map 而不是 List?
【发布时间】:2012-04-19 15:36:19
【问题描述】:

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 对象并在其中循环吗?

【问题讨论】:

    标签: spring jdbctemplate spring-jdbc


    【解决方案1】:

    您有ResultSetExtractor 用于从ResultSet 中提取值。因此,在您的情况下,您可以编写一个自定义的 ResultSetExtractor,它将返回 Map 对象。

    【讨论】:

      猜你喜欢
      • 2022-07-11
      • 2011-04-15
      • 1970-01-01
      • 1970-01-01
      • 2021-04-19
      • 2012-09-21
      • 2016-06-13
      • 1970-01-01
      • 2017-06-12
      相关资源
      最近更新 更多