that's a nasty pattern... but hey if you like it... it's your headache... not mine.
On Mon, 24 Jan 2005 10:32:39 -0800, Pascal DeMilly <[EMAIL PROTECTED]> wrote: > Actually I solved it this way: > > in my DAO code, I use a generic, ID and Name for key/value pair. Then in > my iBatis SQLMap I used aliases to rename my columns to what my DAO > expect. > > <select id="..." resultClass="java.util.HashMap"> > select SKU is ID, Description as Name from Items > </select> > > Now my DAO code is free again from Knowing how the tables are built. > > Regards > > Pascal > > On Mon, 2005-01-24 at 09:22, Pascal DeMilly wrote: > > 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 > > > > > > > > > > > >