読者です 読者をやめる 読者になる 読者になる

Map.Entryの実装は用意しておく。

import java.util.Map の Entry は、汎用的に実装を作っておくと良いかもしれない。

import java.util.Map;
/**
 * Map.Entry実装.
 */
public class Pair<K, V> implements Map.Entry<K, V>{
   public K key;
   public V value;
   public Pair(){}
   public Pair(K k, V v){
      key = k;
      value = v;
   }
   @Override
   public K getKey(){
      return key;
   }
   @Override
   public V getValue(){
      return value;
   }
   @Override
   public V setValue(V value){
      this.value = value;
      return this.value;
   }
}

myBatis の SQLMapper で、この Pair の List で検索結果を抽出するように書いて、、

@Select("SELECT code AS `key`, name AS value FROM items")
public List<Pair<String, String>> getItemPairs();

myBatis の SQLセッションインスタンス ====>> sqlSession とすると。。

Map<String, String> map = sqlSession.getMapper(Mapper.class).getItemPairs()
.stream().collect( ()->new HashMap<String, String>()

,  (r, t)->r.put(t.key, t.value)

,  (r, u)->r.putAll(u));

と、、一気に Map まで持ってきてしまう。