欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

select的 resultType屬性為map時:

通過MapKey指定map的key值

使用id作為map的ke

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

Map的value為Map,一條記錄對應一個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ù)涉及到兩個表里的數(shù)據(jù),需要連表查詢,但我MyBatis的返回結(jié)果不想創(chuàng)建新的DO對象,因此使用@MapKey注解返回一個Map集合。

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

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

具體示例

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");

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

相關文章

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

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

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

    Java由淺入深通關抽象類與接口上

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

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

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

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

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

    Java深入講解static操作符

    static關鍵字基本概念我們可以一句話來概括:方便在沒有創(chuàng)建對象的情況下來進行調(diào)用。也就是說:被static關鍵字修飾的不需要創(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ū)別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • 較詳細的JNI簡介

    較詳細的JNI簡介

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

    SpringMVC上傳文件的兩種方法

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

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

    這篇博客是在學習了一部分Java基礎語法之后的練習項目,通過這個小項目的練習,對Java中的類和對象,抽象類和接口等進行熟悉理解??旄S小編一起學習學習吧
    2022-08-08

最新評論