mybatis返回的map結(jié)果如何設(shè)置有序
mybatis返回的map結(jié)果設(shè)置有序
mybatis返回的map結(jié)果設(shè)置有序(與查詢的域順序一致)
<select id="exoprtGoods" resultType="java.util.HashMap">
這樣的情況下是無排序的
想要按著查詢的順序來的話
換成
<select id="exoprtGoods" resultType="java.util.LinkedHashMap">
mybatis中查詢的結(jié)果有序展示
如何把mybatis中sql查詢的結(jié)果按照自己定義的resultMap有序展示?
1、分析為啥結(jié)果是亂序
先看下圖:
第一張為select語句,resultType是本項目封裝的一個類
第二張為resultMap語句,type也是本項目封裝的一個類
第三張是本項目封裝的一個類,可以看到繼承了HashMap
通過上圖可以分析出,HashMap存取數(shù)據(jù)大多是無序的,那么關(guān)鍵點(diǎn)找出來了。
要想查詢出來的結(jié)果有序,替換HashMap為LinkedHashMap
2、修改
因為PageData本項目封裝類其他地方也使用到了,因此這里只更改xml里面的
- 更改resultType為 java.util.LinkedHashMap
- 更改typeype為 java.util.LinkedHashMap
補(bǔ)充
HashMap:
- HashMap是一個最常用的Map,它根據(jù)鍵的HashCode 值存儲數(shù)據(jù),根據(jù)鍵可以直接獲取它的值,具有很快的訪問速度。
- HashMap最多只允許一條記錄的鍵為Null;
- 允許多條記錄的值為 Null;
- HashMap不支持線程的同步,即任一時刻可以有多個線程同時寫HashMap;
- 可能會導(dǎo)致數(shù)據(jù)的不一致。
LinkedHashMap:
LinkedHashMap也是一個HashMap,但是內(nèi)部維持了一個雙向鏈表,可以保持順序
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Mybatis空值關(guān)聯(lián)的具體實現(xiàn)
在復(fù)雜的數(shù)據(jù)庫查詢中,處理空值關(guān)聯(lián)是一項常見的需求,本文就來介紹一下Mybatis空值關(guān)聯(lián)的具體實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-07-07使用Springboot打成jar包thymeleaf的問題
這篇文章主要介紹了使用Springboot打成jar包thymeleaf的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11Java中Redis存儲String類型會有亂碼的問題及解決方案
在java中使用Redis存儲String類型的數(shù)據(jù)時,會出現(xiàn)亂碼,我寫了一條存儲key為name,值為虎哥的字符串,然后獲取一下這個key為name的值,打印得到的值,下面通過實例代碼介紹Java中Redis存儲String類型會有亂碼的問題及解決方案,一起看看吧2024-04-04maven assembly打包生成Java應(yīng)用啟動腳本bat和sh的方法
springboot應(yīng)用通過maven插件appassembler-maven-plugi生成啟動腳本bat和sh,這篇文章主要介紹了maven assembly打包生成Java應(yīng)用啟動腳本bat和sh,需要的朋友可以參考下2022-11-11Java中Set集合轉(zhuǎn)為List集合常見的兩種方式
List是Java中比較常用的集合類,指一系列存儲數(shù)據(jù)的接口和類,可以解決復(fù)雜的數(shù)據(jù)存儲問題,這篇文章主要給大家介紹了關(guān)于Java中Set集合轉(zhuǎn)為List集合常見的兩種方式,需要的朋友可以參考下2023-12-12