mybatis返回的map結果如何設置有序
mybatis返回的map結果設置有序
mybatis返回的map結果設置有序(與查詢的域順序一致)
<select id="exoprtGoods" resultType="java.util.HashMap">
這樣的情況下是無排序的
想要按著查詢的順序來的話
換成
<select id="exoprtGoods" resultType="java.util.LinkedHashMap">
mybatis中查詢的結果有序展示
如何把mybatis中sql查詢的結果按照自己定義的resultMap有序展示?
1、分析為啥結果是亂序
先看下圖:
第一張為select語句,resultType是本項目封裝的一個類
第二張為resultMap語句,type也是本項目封裝的一個類
第三張是本項目封裝的一個類,可以看到繼承瞭HashMap
通過上圖可以分析出,HashMap存取數據大多是無序的,那麼關鍵點找出來瞭。
要想查詢出來的結果有序,替換HashMap為LinkedHashMap
2、修改
因為PageData本項目封裝類其他地方也使用到瞭,因此這裡隻更改xml裡面的
- 更改resultType為 java.util.LinkedHashMap
- 更改typeype為 java.util.LinkedHashMap
補充
HashMap:
- HashMap是一個最常用的Map,它根據鍵的HashCode 值存儲數據,根據鍵可以直接獲取它的值,具有很快的訪問速度。
- HashMap最多隻允許一條記錄的鍵為Null;
- 允許多條記錄的值為 Null;
- HashMap不支持線程的同步,即任一時刻可以有多個線程同時寫HashMap;
- 可能會導致數據的不一致。
LinkedHashMap:
LinkedHashMap也是一個HashMap,但是內部維持瞭一個雙向鏈表,可以保持順序
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- MyBatis在DAO層定義接口返回類型泛型無效的解決
- mybatis 返回Map類型key默認為大寫問題
- Mybatis查找返回Map,List集合類型的數據方式
- mybatis映射和實際類型不一致的問題
- 關於mybatis resulttype 返回值異常的問題