ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Pascal DeMilly <list.iba...@newgenesys.com>
Subject Re: java.util.HashMap as resultClass
Date Mon, 24 Jan 2005 17:22:49 GMT
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
> <list.ibatis@newgenesys.com> 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
> > 
> >


Mime
View raw message