0

getSimpleJdbcTemplate().query(sql, getMapper());リストを返しますが、キーがオブジェクトのフィールドの1つのデータを格納するマップが必要です。たとえば、id、code、name などのフィールドを持つ「Currency」という名前のオブジェクトがあります。上記のコードは 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 オブジェクトを作成してその中でループすることはありませんか?

4

1 に答える 1

2

ResultSetExtractorから値を抽出する必要がありResultSetます。したがって、あなたの場合、 Map オブジェクトを返すカスタム ResultSetExtractor を作成できます。

于 2012-04-19T06:56:31.337 に答える