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。

推薦閱讀: