最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mybatis返回map結(jié)果集@MapKey使用的場景分析

 更新時(shí)間:2022年01月23日 08:57:20   作者:shadow_zed  
這篇文章主要介紹了mybatis返回map結(jié)果集@MapKey使用的場景分析,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

mybatis返回map結(jié)果集@MapKey使用場景

select的 resultType屬性為map時(shí):

通過MapKey指定map的key值

使用id作為map的ke

@MapKey("id")
Map<Long, UserInfo> getUserInfoMap();

Map的value為Map,一條記錄對應(yīng)一個(gè)Map

@MapKey("id")
Map<Long, Map<String,Object>> getUserValueMap();

使用name作為map的key 

@MapKey("name")
Map<name, UserInfo> getUserInfoMap();
? ..............返回一條記錄...............
Map<String, Object> getUserInfoMapById();

mybatis使用@MapKey注解

背景和含義

背景:今天使用MyBatis查詢一些記錄,數(shù)據(jù)涉及到兩個(gè)表里的數(shù)據(jù),需要連表查詢,但我MyBatis的返回結(jié)果不想創(chuàng)建新的DO對象,因此使用@MapKey注解返回一個(gè)Map集合。

含義:@MapKey注解用于mapper.xml文件中,一般用于查詢多條記錄中各個(gè)字段的結(jié)果,存儲(chǔ)在Map中。Map結(jié)構(gòu)的示例如下:Map<Long, Map<String, String>>。范型類型可以修改。

  • Map的key:一般存儲(chǔ)每條記錄的主鍵,也可以用其他值表示,主要取決于Dao層@MapKey注解后面的字段(如@MapKey("id"));
  • Map的value:也是一個(gè)Map,表示查詢出這條記錄的每個(gè)字段的字段名稱和字段值。

具體示例

1. mapper.xml文件

<select id="getInfoById" resultType="java.util.Map">
?? ?select
?? ?ext.id as id,
?? ?info.produce_area as area,
?? ?ext.attribute_value as companyName
?? ?from product_info info
?? ?left join product_ext ext on info.id=ext.id
?? ?where info.id=#{id} and ext.attribute_name=#{name}
</select>

2. dao.java

@MapKey("id")
Map<Long,Map<String,String>> getInfoById(@Param("id") Long id, @Param("name") String name);

3. manager.java 

// 查詢,返回結(jié)果:{1={area:上海,companyName=西西公司}}
// 如果是多條記錄,返回結(jié)果如:{1={area:上海,companyName:西西公司},2={area:南京,compantyName:猴猴公司}}
Map<Long, Map<String, String>> map = productDao.getInfoById(id, "公司名稱");?
if(map==null || map.isEmpty() || !map.containsKey(id)){
? ? return null;
}
// 獲取結(jié)果
String area = produceInfoMap.get(id).get("area");
String companyName = produceInfoMap.get(productTracInfoId).get("companyName");

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java開發(fā)常用類庫之Hutool詳解

    Java開發(fā)常用類庫之Hutool詳解

    這篇文章主要介紹了Java開發(fā)常用類庫之Hutool,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • Java由淺入深通關(guān)抽象類與接口上

    Java由淺入深通關(guān)抽象類與接口上

    在類中沒有包含足夠的信息來描繪一個(gè)具體的對象,這樣的類稱為抽象類,接口是Java中最重要的概念之一,它可以被理解為一種特殊的類,不同的是接口的成員沒有執(zhí)行體,是由全局常量和公共的抽象方法所組成,本文給大家介紹Java抽象類和接口,感興趣的朋友一起看看吧
    2022-04-04
  • 解決Swagger修改請求對象字段文檔不更新問題

    解決Swagger修改請求對象字段文檔不更新問題

    這篇文章主要為大家介紹了解決Swagger修改請求對象字段文檔不更新的問題,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • Java 實(shí)戰(zhàn)項(xiàng)目之小說在線閱讀系統(tǒng)的實(shí)現(xiàn)流程

    Java 實(shí)戰(zhàn)項(xiàng)目之小說在線閱讀系統(tǒng)的實(shí)現(xiàn)流程

    讀萬卷書不如行萬里路,只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+SSM+jsp+mysql+maven實(shí)現(xiàn)前臺(tái)閱讀后臺(tái)管理的小說在線閱讀系統(tǒng),大家可以在過程中查缺補(bǔ)漏,提升水平
    2021-11-11
  • Java深入講解static操作符

    Java深入講解static操作符

    static關(guān)鍵字基本概念我們可以一句話來概括:方便在沒有創(chuàng)建對象的情況下來進(jìn)行調(diào)用。也就是說:被static關(guān)鍵字修飾的不需要?jiǎng)?chuàng)建對象去調(diào)用,直接根據(jù)類名就可以去訪問,讓我們來了解一下你可能還不知道情況
    2022-07-07
  • ?Spring?中?Bean?的生命周期詳解

    ?Spring?中?Bean?的生命周期詳解

    這篇文章主要介紹了Spring中Bean的生命周期詳解,Java中的公共類稱之為Bean或Java?Bean,而Spring中的Bean指的是將對象的生命周期
    2022-09-09
  • 詳解Java中wait和sleep的區(qū)別

    詳解Java中wait和sleep的區(qū)別

    這篇文章主要介紹了Java中wait和sleep的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • 較詳細(xì)的JNI簡介

    較詳細(xì)的JNI簡介

    JNI是本地語言編程接口。它允許運(yùn)行在JVM中的Java代碼和用C、C++或匯編寫的本地代碼相互操作。下面通過本文給大家分享JNI簡介,感興趣的朋友一起看看吧
    2017-10-10
  • SpringMVC上傳文件的兩種方法

    SpringMVC上傳文件的兩種方法

    這篇文章主要為大家詳細(xì)介紹了SpringMVC上傳文件的兩種方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • JavaSE實(shí)現(xiàn)圖書管理系統(tǒng)的示例代碼

    JavaSE實(shí)現(xiàn)圖書管理系統(tǒng)的示例代碼

    這篇博客是在學(xué)習(xí)了一部分Java基礎(chǔ)語法之后的練習(xí)項(xiàng)目,通過這個(gè)小項(xiàng)目的練習(xí),對Java中的類和對象,抽象類和接口等進(jìn)行熟悉理解??旄S小編一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08

最新評論

尉氏县| 泰来县| 南宁市| 洪泽县| 鞍山市| 丰宁| 岳阳市| 芮城县| 宣威市| 南郑县| 平谷区| 宜良县| 花莲市| 彭水| 台东县| 墨玉县| 龙胜| 云龙县| 阳山县| 东乡族自治县| 永修县| 阳城县| 林西县| 武山县| 新竹县| 剑河县| 高安市| 华蓥市| 万全县| 九江县| 高雄市| 天全县| 莫力| 康保县| 金门县| 米脂县| 遵化市| 准格尔旗| 巧家县| 吉木乃县| 西乌珠穆沁旗|