selectの結果をMapで受け取る
以前resultMapの型をHashMapにする方法を紹介した 結果をMapで受け取る - Struts 2+Spring 2+Tiles+Acegi+iBatis+GWT+JUnit 4+JMockit でフルスタックJAVAフレームワーク が、今回のは結果をListではなく、Mapにする方法。
queryForListではなくqueryForMapを呼ぶだけの話ではあるが最近知って重宝している。
結果の"id"を元にStringがkeyで結果型TypeがvalueのMapで受け取るならば次のように記述する
ans = (Map<String,Type>)getSqlMapClientTemplate().queryForMap("getAll", requestParam, "id" );
これは次のコードと等価
List<Type> list = (List<Type>)getSqlMapClientTemplate().queryForList("getAll", requestParam ); Map<String,Type> map = new HashMap<String,Type>(); for ( Type t : list ) { map.put( t.getId(), t ); } ans = map;
最初からマップに格納するために取得するのなら最初のコードの方が短いしいい。