成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

mybatis 返回Map類型key改為小寫的操作

瀏覽:7日期:2023-10-21 08:10:02

默認情況下,當resultType=“java.util.Map”時,返回的key值都是大寫的。

現在想key改成自己想要的,只需為查詢出來的字段增加個別名即可。

如:

<select resultType='java.util.Map'>select t.name as 'sName',t.sex as 'sSex' from student</select>

as 后的雙引號很關鍵,否則不起作用。

補充知識:mybatis返回map key值大小寫去重,CaseInsensitiveMap、LinkedCaseInsensitiveMap源碼

今天在寫項目的時候遇見一個問題:

編寫的是一套完全解耦的模塊,用于利用freemarker模板動態拼接sql

然而拼接好的sql只能用LinkedHashMap返回結果集,保證數據有序,但是在數據輸出的時候,mybatis 返回了key 相同,但大小寫不同的數據,

在處理這個數據的時候,首先我選用了利用value值相同去做處理,但是有些數據的value值相同但是key不同

看來只能用key去做處理,首先我用了CaseInsensitiveMap 將linkedHashMap的數據放入到CaseInsensitiveMap 中,

輸出的時候結果確實起到了去重的效果,但是在excel導出的時候要對應header標題頭,mybatis 查詢的順序跟header 抬頭是對應的,但是取出的順序卻不是對應的,

因此只能通過排序進行數據對應,但是排序的話只能使用LinkedHashMap去記住順序

因此查詢了資料發現了LinkedCaseInsensitiveMap

LinkedCaseInsensitiveMap 繼承了 LinkedHashMap,可以檢測關鍵字(不區分大小寫)的唯一性,所以 ok bug完美解決

附加 LinkedCaseInsensitiveMap 源碼

package org.springframework.util; import java.util.HashMap;import java.util.Iterator;import java.util.LinkedHashMap;import java.util.Locale;import java.util.Map;import java.util.Map.Entry; public class LinkedCaseInsensitiveMap<V> extends LinkedHashMap<String, V> { private Map<String, String> caseInsensitiveKeys; private final Locale locale; public LinkedCaseInsensitiveMap() { this((Locale)null); } public LinkedCaseInsensitiveMap(Locale locale) { this.caseInsensitiveKeys = new HashMap(); this.locale = locale != null?locale:Locale.getDefault(); } public LinkedCaseInsensitiveMap(int initialCapacity) { this(initialCapacity, (Locale)null); } public LinkedCaseInsensitiveMap(int initialCapacity, Locale locale) { super(initialCapacity); this.caseInsensitiveKeys = new HashMap(initialCapacity); this.locale = locale != null?locale:Locale.getDefault(); } public V put(String key, V value) { String oldKey = (String)this.caseInsensitiveKeys.put(this.convertKey(key), key); if(oldKey != null && !oldKey.equals(key)) { super.remove(oldKey); } return super.put(key, value); } public void putAll(Map<? extends String, ? extends V> map) { if(!map.isEmpty()) { Iterator var2 = map.entrySet().iterator(); while(var2.hasNext()) { Entry entry = (Entry)var2.next(); this.put((String)entry.getKey(), entry.getValue()); } } } public boolean containsKey(Object key) { return key instanceof String && this.caseInsensitiveKeys.containsKey(this.convertKey((String)key)); } public V get(Object key) { if(key instanceof String) { String caseInsensitiveKey = (String)this.caseInsensitiveKeys.get(this.convertKey((String)key)); if(caseInsensitiveKey != null) { return super.get(caseInsensitiveKey); } } return null; } public V getOrDefault(Object key, V defaultValue) { if(key instanceof String) { String caseInsensitiveKey = (String)this.caseInsensitiveKeys.get(this.convertKey((String)key)); if(caseInsensitiveKey != null) { return super.get(caseInsensitiveKey); } } return defaultValue; } public V remove(Object key) { if(key instanceof String) { String caseInsensitiveKey = (String)this.caseInsensitiveKeys.remove(this.convertKey((String)key)); if(caseInsensitiveKey != null) { return super.remove(caseInsensitiveKey); } } return null; } public void clear() { this.caseInsensitiveKeys.clear(); super.clear(); } public Object clone() { LinkedCaseInsensitiveMap copy = (LinkedCaseInsensitiveMap)super.clone(); copy.caseInsensitiveKeys = new HashMap(this.caseInsensitiveKeys); return copy; } protected String convertKey(String key) { return key.toLowerCase(this.locale); }}

以上這篇mybatis 返回Map類型key改為小寫的操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Mybatis 數據庫
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
国产成人自拍高清视频在线免费播放| 精品91自产拍在线观看一区| 久久蜜桃一区二区| 久久综合九色综合欧美狠狠| 欧美视频亚洲视频| 成人黄色大片在线观看| 国产天堂亚洲国产碰碰| 国产麻豆综合| 在线成人欧美| 韩国av一区二区三区| 日韩国产精品大片| 开心九九激情九九欧美日韩精美视频电影 | 亚洲电影一区二区| 欧美写真视频网站| 欧美 日韩 国产 一区| 国产精品电影院| 亚洲三级电影网站| 欧美日韩另类一区| 欧美日韩欧美一区二区| 亚洲国产第一| 国产在线看一区| 国产制服丝袜一区| 欧美婷婷在线| 亚洲激情专区| 不卡视频一二三| 91美女片黄在线观看| 婷婷久久综合九色综合伊人色| 亚洲国产精品久久久久婷婷884 | 久久精品人人| 色综合久久久久久久久| 亚洲人成网站在线| 久久99精品国产麻豆婷婷洗澡| 中文字幕在线观看不卡视频| 欧洲色大大久久| 51精品久久久久久久蜜臀| 亚洲精品一区在线观看| 精品视频999| 91免费版在线看| 日本系列欧美系列| 国产精品国产三级国产普通话蜜臀| 亚洲国产成人午夜在线一区| 天堂精品中文字幕在线| 欧美日韩国产综合视频在线| 极品少妇xxxx偷拍精品少妇| 亚洲成a人片综合在线| 激情综合色播激情啊| 欧美私人啪啪vps| 欧美激情第8页| 国产成人免费视频一区| 国产乱码精品一区二区三区忘忧草 | 日本成人中文字幕在线视频| 久久精品一区二区三区不卡| 久久这里都是精品| 亚洲在线播放电影| 亚洲一级特黄| 欧美日韩国产一区精品一区| 一区精品在线播放| 国产一区视频网站| 在线精品在线| 日韩免费看网站| 午夜精品久久久久久| 午夜电影网一区| 亚洲高清在线精品| 亚洲精品视频免费观看| 国产一区不卡视频| 成人一区二区三区在线观看| 91尤物视频在线观看| 国产一区二区视频在线| 99国产一区| 欧美另类亚洲| 在线电影一区| 亚洲视频你懂的| 国产一区视频在线观看免费| 欧美日本一区二区视频在线观看| 老司机免费视频一区二区 | 国产精品久久久久影视| 久久午夜色播影院免费高清| 亚洲黄页一区| 99在线观看免费视频精品观看| 99国产精品久久久久久久久久久| 亚洲欧美日本视频在线观看| 久久综合九色综合欧美亚洲| 日本一区二区免费在线观看视频| 国产亚洲精品久| 激情综合网av| 久久本道综合色狠狠五月| 亚洲欧美日韩精品一区二区| 日韩精品一区二区三区在线播放 | 欧美日本韩国一区二区三区视频| 亚洲一区二区在线免费观看视频| 亚洲国产精品视频| 99精品国产热久久91蜜凸| 欧美va天堂| 欧美绝品在线观看成人午夜影视| 午夜电影久久久| 日韩精品1区2区3区| 国产v日产∨综合v精品视频| 欧美 日韩 国产 一区| 日韩一区二区在线观看视频| 中文字幕乱码日本亚洲一区二区| 精品伦理精品一区| 美腿丝袜亚洲一区| 在线国产电影不卡| 日韩中文字幕91| 久久riav二区三区| 久久精品1区| 亚洲123区在线观看| 欧美午夜影院一区| 成人av免费在线播放| 欧美日韩专区在线| 成人午夜av影视| 99精品欧美一区二区三区小说 | 欧美在线高清| 久久久久高清精品| 久久久福利视频| 91猫先生在线| 欧美韩日精品| 亚洲国产91| 国产精品99久久久久久宅男| 国产成人精品免费| 丁香婷婷综合色啪| 男女男精品视频| 综合欧美一区二区三区| 亚洲精品视频自拍| 日韩午夜小视频| 337p粉嫩大胆噜噜噜噜噜91av| 久久久久久免费网| 91精品福利在线| 在线视频精品一区| 狂野欧美性猛交blacked| 中文字幕在线不卡视频| 亚洲国产aⅴ成人精品无吗| 精一区二区三区| 国产成人亚洲综合a∨婷婷图片| 国产成人欧美日韩在线电影 | 亚洲黄色毛片| 一区二区激情| 777xxx欧美| 精品福利一二区| 亚洲成人免费av| 26uuu精品一区二区| 久久不射2019中文字幕| 欧美亚洲图片小说| 亚洲最黄网站| 波多野结衣在线一区| 老司机午夜精品99久久| 极品少妇xxxx精品少妇| 一区二区三区高清| 国产iv一区二区三区| 国产精品久久久久久久久动漫| 国产婷婷色一区二区三区四区| 成人性生交大片| 91免费观看视频| 亚洲国产精品一区二区第四页av| 亚洲精品国产一区二区精华液| 亚洲欧美日韩另类精品一区二区三区 | 亚洲一区二区三区精品视频| 欧美日韩大陆一区二区| 日韩精品成人一区二区三区| 在线精品视频免费播放| 麻豆国产欧美日韩综合精品二区| 国产一区免费视频| 欧美色图天堂网| 国产精品激情偷乱一区二区∴| 狠狠88综合久久久久综合网| 欧美网站一区二区| 国产精品欧美一区喷水| 欧美日韩综合精品| 午夜激情一区二区三区| 亚洲精品国产精品国自产观看| 欧美一卡二卡在线观看| 亚洲高清视频在线| 久久一区激情| 精彩视频一区二区三区| 久久精品五月婷婷| 一区二区三区高清| 久久综合一区| 国产精品一级二级三级| 精品久久久久一区| 日本不卡不码高清免费观看| 成人看片黄a免费看在线| 午夜亚洲性色福利视频| 精品99久久久久久| 久久成人久久爱| 精品视频在线免费观看| 国产成人综合自拍| 国产欧美日韩另类一区| 国产精品久久久久久久久婷婷| 精品国产99国产精品| 99精品国产99久久久久久白柏| 国产精品每日更新| 麻豆亚洲精品| 亚洲一区二区三区四区五区黄| 老鸭窝亚洲一区二区三区| 一区二区三区自拍| 99久久亚洲一区二区三区青草 | 欧美欧美全黄| 91久久精品日日躁夜夜躁欧美| 亚洲激情另类| 欧美日韩蜜桃|