2012-03-02 75 views
1

我試圖從數據庫檢索兩列與iBatis。我想把它作爲一個Map,這樣resultMap.get(col1) == col2Obj檢索鍵值對作爲地圖

同樣的問題被問到here,但發佈的解決方案將不適用於我,並失敗,錯誤:Cannot cast List as Map。我正在使用iBatis 2.3.4。 (?難道這個功能在這個版本我似乎無法找到相關文件。)

我的發言地圖:

<resultMap id="countMap" class="java.util.HashMap"> 
    <result property="key" column="KEY" /> 
    <result property="value" column="VALUE" /> 
</resultMap> 
<select id="getCounts" resultMap="countMap" parameterClass="map"> 
SELECT 
    TYPE AS KEY, 
    SUM(VAL) AS VALUE 
FROM MYTABLE 
WHERE REGDATE BETWEEN #start_date# and #end_date# 
GROUP BY TYPE 
</select> 

實際查詢返回:

|| KEY || VALUE || 
|| 4 || 304 || 

調用.toString()在返回地圖:

{"key" : "4", "value" : "304" } 

由於鍵集由{「鍵「,」value「},resultMap似乎沒有做我想做的事情。當我使用會導致多於一行的參數調用查詢時,出現錯誤。

我正在使用sqlMapClient.queryForMap("mymap.getCounts", args);來執行查詢。

+0

哪種方法的iBatis?你能發佈你使用的代碼嗎?你也可以發佈例外嗎? – nwinkler 2012-03-02 07:10:49

回答

0

烏普斯,我明白了。

我需要您使用運行查詢使用

sqlMapClient.queryForMap("mymap.getCounts", args, "key", "value");