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

Mybatis中注解@MapKey的使用方式

 更新時間:2024年12月14日 10:27:36   作者:杭州小哥哥  
MyBatis使用@MapKey注解進(jìn)行連表查詢,返回一個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)文章

  • idea找不到創(chuàng)建package包的選項問題及解決方案

    idea找不到創(chuàng)建package包的選項問題及解決方案

    在IntelliJ IDEA中找不到創(chuàng)建package包選項?按照步驟操作即可顯示:右鍵選擇Mark Directory as -> Source Root
    2026-03-03
  • mybatisplus之使用@Select解讀

    mybatisplus之使用@Select解讀

    這篇文章主要介紹了mybatisplus之使用@Select解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • 使用IDEA如何拉取GitLab項目

    使用IDEA如何拉取GitLab項目

    使用IDEA拉取GitLab項目,首先需要組長提供的socket和賬號密碼登錄內(nèi)網(wǎng)的GitLab,打開IDEA,選擇新建項目,選擇Project from Version Control,然后在項目路徑后面添加.git,以上步驟為個人操作經(jīng)驗,希望能為大家提供參考
    2024-10-10
  • 淺談Servlet的Cookie和Session機制

    淺談Servlet的Cookie和Session機制

    雖然session機制在web應(yīng)用程序中被采用已經(jīng)很長時間了,但是仍然有很多人不清楚session機制的本質(zhì),以至不能正確的應(yīng)用這一技術(shù).本文將詳細(xì)討論session以及cookie的工作機制,需要的朋友可以參考下
    2021-05-05
  • 詳解IDEA啟動多個微服務(wù)的配置方法

    詳解IDEA啟動多個微服務(wù)的配置方法

    這篇文章主要介紹了詳解IDEA啟動多個微服務(wù)的配置方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • Springboot詳解RocketMQ實現(xiàn)廣播消息流程

    Springboot詳解RocketMQ實現(xiàn)廣播消息流程

    RocketMQ作為一款純java、分布式、隊列模型的開源消息中間件,支持事務(wù)消息、順序消息、批量消息、定時消息、消息回溯等,本篇我們了解如何實現(xiàn)廣播消息
    2022-06-06
  • 淺談Spring Cloud Gateway 轉(zhuǎn)發(fā) SSE 的那些坑

    淺談Spring Cloud Gateway 轉(zhuǎn)發(fā) SSE 的那些坑

    本文主要介紹了SSE在Gateway場景下的常見問題題并提供了解決方案,包括禁止響應(yīng)緩存、正確配置超時設(shè)置、透傳Header等確保Gateway不加工SSE流式響應(yīng),幫助開發(fā)者避免常見錯誤
    2026-06-06
  • Springcloud eureka搭建高可用集群過程圖解

    Springcloud eureka搭建高可用集群過程圖解

    這篇文章主要介紹了Springcloud eureka搭建高可用集群過程圖解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • spring-boot項目啟動遲緩異常排查解決記錄

    spring-boot項目啟動遲緩異常排查解決記錄

    這篇文章主要為大家介紹了spring-boot項目啟動遲緩異常排查解決記錄,突然在本地啟動不起來了,表象特征就是在本地IDEA上運行時,進(jìn)程卡住也不退出,應(yīng)用啟動時加載相關(guān)組件的日志也不輸出
    2022-02-02
  • mybatis的MappedStatement線程安全探究

    mybatis的MappedStatement線程安全探究

    這篇文章主要為大家介紹了mybatis的MappedStatement線程安全示例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08

最新評論

彝良县| 逊克县| 义马市| 元谋县| 荆州市| 斗六市| 尤溪县| 丘北县| 合水县| 阿克苏市| 兰考县| 遂溪县| 汝阳县| 枣阳市| 东阿县| 资阳市| 报价| 蒙自县| 兰坪| 岳阳市| 乌鲁木齐市| 浏阳市| 永新县| 马山县| 勐海县| 济源市| 湟中县| 彩票| 阿图什市| 镇宁| 兰州市| 沂水县| 卢氏县| 乡宁县| 乌拉特中旗| 曲麻莱县| 宜君县| 花垣县| 同江市| 枝江市| 屯门区|