大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 Mybatis返回結果為Map

Mybatis返回結果為Map

更新時間:2021-09-14 10:50:20 來源:動力節點 瀏覽2785次

表:members中的gender列是這樣:

Female
Female
Male
Female
Male
Male
Male
Male
Male

現在我們想統計members中男女人數分別是多少,很顯然返回的結果應該是這樣的:

Femal: 3
Male: 6

對應的xml文件中的查詢語句:

<select id="genderCount" resultMap="genderCount">
    select
        gender,
        count(gender) count
    from members
    group by gender
  </select>
<resultMap id="genderCount" type="java.util.HashMap">
    <result column="gender" property="key" javaType="java.lang.String"/>
    <result column="count" property="value" javaType="java.lang.Integer"/>
</resultMap>

問題一: 按照常規想法,mybatis返回的結果應該是map對象,并且里面包含兩個entry。

所以,對應的mapper接口應該是這樣的子的:

Map<String, Integer> getGenderCount();

但這樣定義接口會異常,大概的意思是:查詢結果要么是 ull,要么是只有一個,而現在卻出現多個結果。

這樣的報錯信息很明顯了,mapper接口應該定義成:

List<Map<String, Integer>> getGenderCount();

xml文件中的查詢結果是list,這個list中包含兩個map對象,每一個map對象中只包含一個entry。

(好像使用resultHandler可以讓xml中查詢的返回結果為map對象中包含兩個entry這種形式)

問題二:list中有兩個map,那每個map中的entry是什么呢? 同樣是按照常規想法,兩個map 中應該分別應該是:{Femal:3},{Male: 6}。但實際的返回結果是:

[
map1:{
	key:Femal,
	value: 3
}
map2:{
	key:Male,
	value: 6
}
]

所以需要轉換成我們期望的類型。

在這個demo中,需要將mapper接口定義成這樣子。

List<Map<String, Object>> getGenderCount();

因為value的類型能是String可能是Integer。

對xml查詢的List<Map<String, Object>>結果做轉化,代碼如下:

private Map<String, Integer> getMetricsLatestVersion(
      List<Map<String, Object>> genderCountList) {
    Map<String, Integer> genderCount = new HashMap<>();
    for (Map<String, Object> kv : genderCountList) {
      String key = null;
      Integer value = null;
      for (Map.Entry<String, Object> entry : kv.entrySet()) {
        if (entry.getKey().equals("key")) {
          key = (String) entry.getValue();
        } else {
          value = (Integer) entry.getValue();
        }
      }
      genderCount.put(key, value);
    }
    return genderCount;
  }

以上就是對“Mybatis返回結果為Map”的介紹,大家如果想了解更多Java知識,可以到動力節點的Java視頻頁面進行學習,里面有從入門到精通的全套視頻教程可以免費下載學習,這對想學習Java的小伙伴來說會有很大幫助。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 欧美金妇欧美乱妇xxxx | 中文字幕伦理聚合第一页 | 成人欧美视频在线观看 | 欧美成在线视频 | 亚洲精品一区二区三区在 | 国产欧美亚洲另类第一页 | 免费亚洲成人 | 亚洲精品高清国产麻豆专区 | 国产羞羞事1000部在线观看 | 国产成人综合久久精品亚洲 | 亚洲国产成人在线观看 | 国产在线观看美女福利精 | 91在线精品视频 | 日本免费人成黄页网观看视频 | 久久成人18 | 国产精品女仆装在线播放 | 香蕉人在线香蕉人在线 | 亚洲精品国产五月色 | jizzjiz熟丰满老妇日本 | 亚洲va欧美va人人爽夜夜嗨 | 久久毛片免费看 | 日本中文字幕免费 | 精品欧美一区二区在线观看 | 91九色首页 | 午夜免费一级片 | 欧美成人 一区二区三区 | 99精品免费观看 | 中文字幕精品视频在线观 | 亚洲国产成人久久三区 | 欧美一级在线 | 一区二区在线 | 成人久久免费视频 | 欧美国产亚洲一区 | 天天舔天天干 | 久久天天躁狠狠躁夜夜不卡 | 91久久九九精品国产综合 | 91香蕉国产亚洲一区二区三区 | 国产99精品一区二区三区免费 | 美国特级成人毛片 | 国产精品一级视频 | 狠狠大日本亚洲香蕉亚洲 |