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

Mybatis中注解@MapKey的使用方式

 更新時間:2024年12月14日 10:27:36   作者:杭州小哥哥  
MyBatis使用@MapKey注解進行連表查詢,返回一個Map集合,Map的key為每條記錄的主鍵或指定字段,value為該記錄的字段名稱和字段值

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

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

3. manager

// 查詢,返回結(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");

總結(jié)

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

相關(guān)文章

  • 一文詳解如何排查定位Java中的死鎖

    一文詳解如何排查定位Java中的死鎖

    在當今數(shù)字化時代,微服務架構(gòu)憑借其高可擴展性、靈活性和易于維護等優(yōu)勢,成為了眾多企業(yè)構(gòu)建大型應用系統(tǒng)的首選架構(gòu)模式,當我們將微服務部署在 Linux 服務器上時,有時會遭遇令人頭疼的死鎖問題,本位給大家介紹了如何排查定位Java中的死鎖,需要的朋友可以參考下
    2025-02-02
  • Java中數(shù)組的常見操作合集

    Java中數(shù)組的常見操作合集

    這篇文章主要為大家詳細介紹了Java中數(shù)組的一些常見操作,例如:數(shù)組遍歷、數(shù)組獲取最大值元素、數(shù)組反轉(zhuǎn)等,感興趣的小伙伴可以了解一下
    2022-10-10
  • Java 自定義Spring框架與核心功能詳解

    Java 自定義Spring框架與核心功能詳解

    Spring框架是由于軟件開發(fā)的復雜性而創(chuàng)建的。Spring使用的是基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅僅限于服務器端的開發(fā)
    2021-10-10
  • mybatis?plus新增(insert)數(shù)據(jù)獲取主鍵id的問題

    mybatis?plus新增(insert)數(shù)據(jù)獲取主鍵id的問題

    這篇文章主要介紹了mybatis?plus新增(insert)數(shù)據(jù)獲取主鍵id的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • IDEA創(chuàng)建Java Web項目不能及時刷新HTML或JSP頁面問題

    IDEA創(chuàng)建Java Web項目不能及時刷新HTML或JSP頁面問題

    這篇文章主要介紹了IDEA創(chuàng)建Java Web項目不能及時刷新HTML或JSP頁面問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • SpringBoot使用@Cacheable注解實現(xiàn)緩存功能流程詳解

    SpringBoot使用@Cacheable注解實現(xiàn)緩存功能流程詳解

    最近一直再學Spring Boot,在學習的過程中也有過很多疑問。為了解答自己的疑惑,也在網(wǎng)上查了一些資料,以下是對@Cacheable注解的一些理解
    2023-01-01
  • 使用Feign實現(xiàn)微服務間文件下載

    使用Feign實現(xiàn)微服務間文件下載

    這篇文章主要為大家詳細介紹了使用Feign實現(xiàn)微服務間文件下載,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • spring boot 圖片上傳與顯示功能實例詳解

    spring boot 圖片上傳與顯示功能實例詳解

    這篇文章主要介紹了spring boot 圖片上傳與顯示功能實例詳解,需要的朋友可以參考下
    2017-04-04
  • 解決IDEA無法下載maven依賴的問題

    解決IDEA無法下載maven依賴的問題

    這篇文章主要介紹了解決IDEA無法下載maven依賴的問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • SpringBoot配置的加載流程詳細分析

    SpringBoot配置的加載流程詳細分析

    了解內(nèi)部原理是為了幫助我們做擴展,同時也是驗證了一個人的學習能力,如果你想讓自己的職業(yè)道路更上一層樓,這些底層的東西你是必須要會的,這篇文章主要介紹了SpringBoot配置的加載流程
    2023-01-01

最新評論