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
>
>