如何把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,但是內部維持了一個雙向鏈表,可以保持順序
author:su1573