boot選擇,springboot之resultType、resultMap的正確打開方式【超級詳細】

 2023-11-19 阅读 40 评论 0

摘要:👨?🎓作者:bug菌 ??博客:CSDN、掘金等 💌公眾號:猿圈奇妙屋 boot選擇?🚫特別聲明:原創不易,轉載請附上原文出處鏈接和本文聲明,謝謝配合。 🙏版權聲明:文章里可能部分文字或者圖片來源

👨?🎓作者:bug菌

??博客:CSDN、掘金等

💌公眾號:猿圈奇妙屋

boot選擇?🚫特別聲明:原創不易,轉載請附上原文出處鏈接和本文聲明,謝謝配合。

🙏版權聲明:文章里可能部分文字或者圖片來源于互聯網或者百度百科,如有侵權請聯系bug菌處理。

【開發云】年年都是折扣價,不用四處薅羊毛

一、環境說明🔥

環境:springboot 2.3.1.REALSE + mybatis-plus 3.2.0 + jdk1.8 + mysql 5.6

二、文章概述🔥

? ? ? ? 今天,我要給大家講一個我因前幾天遇到的一個bug,由此為靈感而想跟大家分享這個東西,既專寫一篇關于[ 如何正確使用resultType/resultMap?]的文章,具有很好的入門教學,希望能幫助更多小伙伴💯,不會因它們而犯低級錯💥。

import java.util.Scanner、? ? ? ? 廢話不多說,咱們就開始這期的內容教學內容吧😳。

三、正文🔥

????????我們都非常熟悉,日常使用 mybatis 在進行select查詢映射的時候,返回類型既可以用resultType,也可以用resultMap。這兩啥時候分別啥時候用?這二者究竟又有啥同異呢?這些問題小伙伴們有思考過么?如果沒有,那么也沒關系,今天我來給大家進行一一解惑。

? ? ? ? 我們先從mybatis官網文檔中,了解到對resultType/resultMap 是這么描述的:

  • ResultType:從這條語句中返回結果的類全限定名或別名。 注意,如果返回的是一個集合,那resultType設置為集合包含的類型,而不是集合本身類型。
  • ResultMap: 對外部 resultMap 的命名引用,就是映射實體類的數據類型。

????????提示:經測試,同一個select查詢,resultType 和 resultMap 二者也可以同時使用。但不推薦啊,一般都是選其一使用即可,因為沒必要同時使用。(為什么要做這么個測試呢?目的是為了驗證我看到網上某一博主提出的一個二者不能同時使用的觀點!經測試,這是不對的,二者可以同時使用。)

the type java.util.Map$Entry?具體測試演示截圖如下:

1??resultType

????????resultType可以直接為返回的值類型進行定義,比如給定為String、int、double、float、long、Map等數據類型;列舉如下:

<select id="findAllProfessionalGroup3" resultType="int"></select>
<select id="findAllProfessionalGroup3" resultType="String"></select>

????????其中返回的List也是將返回類型定義為Map,然后mybatis會自動將這些map存放到一個List中,dao層用可用Map接收。

<select id="findAllProfessionalGroup3" resultType="Map"></select>

還有resultType也可以是一個對象,舉例如下:


<select id="findAllProfessionalGroup3" resultType="com.example.review.vo.UserInfoVo"></select>

java map reduce,? ? ? ? 其中resultType指定的是返回該對象的相對地址,比如你參考下我的項目中UserInfoVo對象的目錄地址,你就會明白了,大家請看:

? ? ? ? 切記,如果你是使用?resultType指定一個對象時,即要求你的sql查詢語句查詢出的字段在相應的pojo中必須有和它相同的字段對應。但是,如果列名沒有精確匹配,你也可以在查詢字段上定義別名(sql 的as 用法可以了解一下)。

具體請參考我的演示:

? ? ? ? ?如果沒有字段名對應,sql查詢不會報錯,也會正常返回該對象,但是對象整體都為空。不信的小伙伴可以自己去測試一下。我是返實測返回一個list<XxxVo> res,但是debug看到該res顯示All elements are null。

Spring Boot,具體大家請看截圖:

2??resultMap

? ? ? ? 而resultMap呢,其實也與resulttype定義對象很pojo很類似,為什么這么說呢?因為它只適合使用返回值是自定義實體類的情況。

?其中resultMap標簽解析:

  • ?id:為 resultMap標簽在Xxxmapper.xml文件中的唯一標識。比如:BaseResultMap1
  • ? type:最終要映射的實體類pojo。比如:FindByProfessionalGroupTopFiveVo。
  • column:?庫表的字段名。比如:professional_group、job_number。
  • property:實體類pojo里的屬性名。比如:professionalGroupName、accountId。

?... ...

springboot版本?? ? ? ? 好啦,以上就是這期文章的所有內容啦。如果對你有所幫助,還請不要忘記給bug菌[三連支持]喲。如果想獲得更多的學習資源或者想和更多的技術愛好者一起交流,可以關注我的公眾號『猿圈奇妙屋』,后臺回復關鍵詞領取學習資料、大廠面經、面試模板等海量資源,就等你來拿。

四、文末🔥

????????如果你還想要學習更多,小伙伴們大可關注bug菌專門為你們創建的專欄《springboot零基礎入門教學》,都是我一手打下的江山,持續更新中,希望能幫助到更多小伙伴們。

【開發云】年年都是折扣價,不用四處薅羊毛

? ? ? ?我是bug菌,一名想走👣出大山改變命運的程序猿。接下來的路還很長,都等待著我們去突破、去挑戰。來吧,小伙伴們,我們一起加油!未來皆可期,fighting!

????????最后送大家兩句我很喜歡的話,與諸君共勉!


Springboot注解,??做你想做的人,沒有時間限制,只要愿意,什么時候都可以start。

🍀你能從現在開始改變,也可以一成不變,這件事,沒有規矩可言,你可以活出最精彩的自己。


?????

💌如果文章對您有所幫助,就請留下您的吧!(#^.^#);

💝如果喜歡bug菌分享的文章,就請給bug菌點個關注吧!(?′?‵?)づ╭?~;

💗如果對文章有任何疑問,還請文末留言或者加群吧【QQ交流群:708072830】;

💞鑒于個人經驗有限,所有觀點及技術研點,如有異議,請直接回復參與討論(請勿發表攻擊言論,謝謝);

💕版權聲明:原創不易,轉載請附上原文出處鏈接和本文聲明,版權所有,盜版必究!!!謝謝。

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/185021.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息