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