Thanks Larry, I tried it and it works. However this still leave some dependencies in my DAO code as I have to specify the column names there as in:
return getSqlMapClientTemplate().queryForMap("getItemNameMap", null, "SKU", "Description"); How will you do about moving that code into the SqlMap. Should I create a custom resultMap with key/value as properties and refer to it in my DAO code? I am going to give it a try and see what happened. Thanks for you help. Pascal On Mon, 2005-01-24 at 08:44, Larry Meadors wrote: > Try executeQueryForMap() instead. > > > On Mon, 24 Jan 2005 08:42:25 -0800, Pascal DeMilly > <[EMAIL PROTECTED]> wrote: > > Hi, > > > > I would like to retrieve a Map with whose key is the 1st column of my > > query and the value is the 2nd column. For example right now I do: > > > > <select id="getItemNameMap" resultClass="java.util.HashMap"> > > select SKU, Description from Items > > </select> > > > > However this returns a list of maps with the key being the column name > > and the value the column value which seems wasteful in term of space (I > > am using remoting to retrieve that info). > > > > I currently solve it by using a custom rowHandler in my DAO as follow: > > > > public Map getItemNames () throws DataAccessException { > > final KeyValueHandler rowHandler = new KeyValueHandler (); > > getSqlMapClientTemplate().queryWithRowHandler("getItemNameMap", > > null, rowHandler); > > return rowHandler.getMap(); > > } > > > > private class KeyValueHandler implements RowHandler { > > final Map map = new HashMap (); > > > > public void handleRow(Object valueObject) { > > final Map row = (Map) valueObject; > > map.put (row.get("SKU"), row.get("Description")); > > } > > > > public Map getMap () { > > return map; > > } > > > > } > > > > But I would like to move possibly that code out of my DAO code and into > > iBatis SqlMap file. > > > > How could I do that > > > > TIA > > > > Pascal > > > >