mybatis返回的map結(jié)果如何設(shè)置有序
mybatis返回的map結(jié)果設(shè)置有序
mybatis返回的map結(jié)果設(shè)置有序(與查詢(xún)的域順序一致)
<select id="exoprtGoods" resultType="java.util.HashMap">
這樣的情況下是無(wú)排序的
想要按著查詢(xún)的順序來(lái)的話(huà)
換成
<select id="exoprtGoods" resultType="java.util.LinkedHashMap">
mybatis中查詢(xún)的結(jié)果有序展示
如何把mybatis中sql查詢(xún)的結(jié)果按照自己定義的resultMap有序展示?
1、分析為啥結(jié)果是亂序
先看下圖:
第一張為select語(yǔ)句,resultType是本項(xiàng)目封裝的一個(gè)類(lèi)

第二張為resultMap語(yǔ)句,type也是本項(xiàng)目封裝的一個(gè)類(lèi)

第三張是本項(xiàng)目封裝的一個(gè)類(lèi),可以看到繼承了HashMap

通過(guò)上圖可以分析出,HashMap存取數(shù)據(jù)大多是無(wú)序的,那么關(guān)鍵點(diǎn)找出來(lái)了。
要想查詢(xún)出來(lái)的結(jié)果有序,替換HashMap為L(zhǎng)inkedHashMap
2、修改
因?yàn)镻ageData本項(xiàng)目封裝類(lèi)其他地方也使用到了,因此這里只更改xml里面的
- 更改resultType為 java.util.LinkedHashMap
- 更改typeype為 java.util.LinkedHashMap


補(bǔ)充
HashMap:
- HashMap是一個(gè)最常用的Map,它根據(jù)鍵的HashCode 值存儲(chǔ)數(shù)據(jù),根據(jù)鍵可以直接獲取它的值,具有很快的訪問(wèn)速度。
- HashMap最多只允許一條記錄的鍵為Null;
- 允許多條記錄的值為 Null;
- HashMap不支持線(xiàn)程的同步,即任一時(shí)刻可以有多個(gè)線(xiàn)程同時(shí)寫(xiě)HashMap;
- 可能會(huì)導(dǎo)致數(shù)據(jù)的不一致。
LinkedHashMap:
LinkedHashMap也是一個(gè)HashMap,但是內(nèi)部維持了一個(gè)雙向鏈表,可以保持順序
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java對(duì)象數(shù)組的添加、刪除和遍歷代碼示例
在Java編程中,我們經(jīng)常需要對(duì)數(shù)據(jù)結(jié)構(gòu)進(jìn)行遍歷操作,并根據(jù)業(yè)務(wù)需求刪除部分元素,這篇文章主要給大家介紹了關(guān)于Java對(duì)象數(shù)組的添加、刪除和遍歷的相關(guān)資料,需要的朋友可以參考下2024-04-04
JVM Metaspace內(nèi)存溢出問(wèn)題解決方案
這篇文章主要介紹了JVM Metaspace內(nèi)存溢出排查總結(jié)過(guò)程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11
springboot2中使用@JsonFormat注解不生效的解決
這篇文章主要介紹了springboot2中使用@JsonFormat注解不生效的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02
java實(shí)現(xiàn)在pdf模板的指定位置插入圖片
這篇文章主要為大家詳細(xì)介紹了java如何實(shí)現(xiàn)在pdf模板的指定位置插入圖片,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-10-10
Springboot如何同時(shí)裝配兩個(gè)相同類(lèi)型數(shù)據(jù)庫(kù)
這篇文章主要介紹了Springboot如何同時(shí)裝配兩個(gè)相同類(lèi)型數(shù)據(jù)庫(kù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11
Maven本地打包war包實(shí)現(xiàn)代碼解析
這篇文章主要介紹了Maven本地打包war包實(shí)現(xiàn)代碼解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09
Spring Boot集成Resilience4J實(shí)現(xiàn)限流/重試/隔離
在Java的微服務(wù)生態(tài)中,對(duì)于服務(wù)保護(hù)組件,像springcloud的Hystrix,springcloud?alibaba的Sentinel,以及當(dāng)Hystrix停更之后官方推薦使用的Resilience4j,所以本文給大家介紹了Spring Boot集成Resilience4J實(shí)現(xiàn)限流/重試/隔離,需要的朋友可以參考下2024-03-03
Java存儲(chǔ)過(guò)程調(diào)用CallableStatement的方法
這篇文章主要介紹了Java存儲(chǔ)過(guò)程調(diào)用CallableStatement的方法,幫助大家更好的理解和學(xué)習(xí)Java,感興趣的朋友可以了解下2020-11-11

