ibatis使用心得——返回Map的Map
來源:http://morningspace.51.net/weblog/?p=143
一般而言,ibatis的sql map是通過JavaBean的屬性與數據庫表字段的映射來完成一些數據庫存取的。而有些場合下,比如數據表本身較為簡單,我們并不希望為此單獨構造一個JavaBean而“污染”對象系統。此時,我們可以利用Map作為返回結果來代替JavaBean對象。見下面的sql map片段:
<resultMap id=\”getItemsResult\” class=\”java.util.HashMap\”>
<result property=\”itemName\” column=\”item_name\” />
<result property=\”itemValue\” column=\”item_value\” />
</resultMap>
<select id=\”getItems\” resultMap=\”getItemsResult\”>
select item_name, item_value from item_table
</select>
這里顯式指定了一個resultMap,利用SqlMapClient的queryForList將會返回一個HashMap List,每個List元素都將是一個Map對象。
有時候,我們并不希望返回的是Object List,而希望返回某種形式的Map。無須更改sql map,我們可以利用SqlMapClient的queryForMap達到這一目的。此時,需要指定Map的key和value,見下面的代碼片段:
getSqlMapClientTemplate().queryForMap(\”getItems\”, null, \”itemName\”, \”itemValue\”);
該函數的返回結果將是一個HashMap Map。這里,指定了key和value分別為itemName和itemValue,根據sql map中的定義,實際對應于item_name和item_value字段。也可以定義key為某個字段,而value為整個HashMap對象(或者JavaBean對象):
getSqlMapClientTemplate().queryForMap(\”getItems\”, null, \”itemName\”);
此外,sql map還有提供一種隱式的resultMap(詳見reference),但是經過試驗,這種隱式resultMap在返回HashMap Map的時候,并沒有得到正確結果,但顯式的resultMap聲明是沒有問題的。
總結
以上是生活随笔為你收集整理的ibatis使用心得——返回Map的Map的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js 时间比较
- 下一篇: replace和replaceAll