SpringBoot 自定義映射規則resultMap association一對一

介紹

例:學生表,班級表,希望在查詢學生的時候一起返回該學生的班級,而一個實體類封裝的是一個表,如需要多表查詢就需要自定義映射。

表結構

班級表
在這里插入圖片描述

學生表
在這里插入圖片描述

SQL語句

SELECT a.id,a.name,a.classes,b.id classesId,b.name classesNmae 
FROM students a,classes b WHERE a.name='蔡徐坤'  and a.classes=b.id 

在這里插入圖片描述

實體類

班級類

@Data
public class Students {Long id;String name;}

學生類

@Data
public class Classes {Long id;String name;
}

Vo類 (返回前端)

@Data
public class StudentsVo {Students students;Classes classes;
}

Mapper

查詢語句

<select id="list"  resultMap="listMap">SELECT a.id,a.name,a.classes,b.id classesId,b.name classesNmae  FROM students a,classes b WHERE a.name=#{name}  and  a.classes=b.id
</select

映射規則

id:自定義規則的名稱,可以當作是一個方法
type:封裝到哪個類
association :一對一
javaType:子對象,如果 學生 或 班級
autoMapping:false 或 true true為自動映射屬性,如果屬性名和字段名一致就可以使用,不一致時使用result

 <!--自定義映射規則--><resultMap id="listMap" type="com.example.demo.demos.web.pojo.vo.StudentsVo" ><association property="students" javaType="com.example.demo.demos.web.pojo.Students"  autoMapping="true"></association><!--封裝學生類--><association property="classes" javaType="com.example.demo.demos.web.pojo.Classes"  autoMapping="true"><id property="id" column="classesId" ></id><result property="name" column="classesNmae"></result></association><!--封裝班級類--></resultMap>

id:表示是主鍵
result:屬性名不一致是使用
property:實體類屬性名
column:數據字段名

結果

{"code": 200,"msg": "獲取成功","data": [{"students": {"id": 18,"name": "蔡徐坤"},"classes": {"id": 1,"name": "大數據5"}},{"students": {"id": 21,"name": "蔡徐坤"},"classes": {"id": 2,"name": "大數據1"}}]
}

這里json分為兩個對象封裝了,一個存學生,一個存班級,也可以把學生直接存到學生對象里。

優化

修改學生的實體類,直接把班級類定義
學生實體類

@Data
public class Students {Long id;String name;//班級消息Classes belong;
}

Mapper

<!--自定義映射規則-->
<resultMap id="listMap" type="com.example.demo.demos.web.pojo.Students" ><!--設置主鍵--><id property="id" column="id"></id><!--字段映射到屬性--><result property="name" column="name"></result><!--屬性和字段但一致的情況下可以使用autoMapping="true"--><association property="belong" javaType="com.example.demo.demos.web.pojo.Classes" ><id property="id" column="classesId"></id><result property="name" column="classesNmae"></result></association><!--班級信息封裝的類--></resultMap>

一樣的效果,都可以查出,但是結構更好一點

{"code": 200,"msg": "獲取成功","data": [{"id": 18,"name": "蔡徐坤","belong": {"id": 1,"name": "大數據5"}},{"id": 21,"name": "蔡徐坤","belong": {"id": 2,"name": "大數據1"}}]
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/712455.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/712455.shtml
英文地址,請注明出處:http://en.pswp.cn/news/712455.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Charles抓包 - 安裝、激活、證書配置

最近剛好又遇到了抓包的需求&#xff0c;之前一直使用 Fiddler 抓包&#xff0c;這幾年一直聽大家都在用 Charles 抓包&#xff0c;正好一起了解下&#xff08;一般建議掌握一種抓包方式即可&#xff0c;都可以解決同種需求場景&#xff09; 抓包 Fiddler抓包 Charles 下載、安…

[機器視覺]halcon應用實例 多ROI模板匹配

本示例是單ROI的功能擴展示例&#xff0c;多ROI.后面有空了將出用戶自定義ROI。 比單ROI增加ROI區域的連接和合并。還有for的實例應用。步驟同單ROI一樣。不懂的可以看一下單ROI文章。[機器視覺]halcon應用實例 單ROI模板匹配-CSDN博客 有需要的可以【點贊】【關注】【收藏】…

2024年新提出的算法|LEA愛情進化算法(Love Evolution Algorithm)

Love Evolution Algorithm: a stimulus–value–role theory-inspired evolutionary algorithm for global optimization 愛情進化算法Love Evolution Algorithm&#xff0c;LEA&#xff0c;于2024年2月發表在中科院3區SCI期刊 The Journal of Supercomputing。 1、簡介 本文提…

幸運星數(爺再也不想用pow了)

解法&#xff1a; 暴力 #include <iostream> #include <vector> using namespace std; #define endl \nint main() {ios::sync_with_stdio(false);cin.tie(0); cout.tie(0);int n;long long sum 0, a;cin >> n;for (int i 1; i < n; i) {a 1;for (in…

#python升級#CentOS 7 python升級到3.11.6

在 CentOS 7 上升級 Python 版本可能會比較復雜&#xff0c;因為 CentOS 7 默認安裝的是 Python 2.7&#xff0c;并且系統很多組件依賴于它。不過&#xff0c;可以通過以下步驟嘗試升級到 Python 3.11.6&#xff1a; 安裝必要的依賴&#xff1a; sudo yum install gcc openssl-…

洛谷P1015回文數

題目描述 若一個數&#xff08;首位不為零&#xff09;從左向右讀與從右向左讀都一樣&#xff0c;我們就將其稱之為回文數。 例如&#xff1a;給定一個十進制數 5656&#xff0c;將 5656 加 6565&#xff08;即把 5656 從右向左讀&#xff09;&#xff0c;得到 121121 是一個…

藍橋杯刷題2

1. 修建灌木 import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scan new Scanner(System.in);int n scan.nextInt();for (int i 1;i < n1;i){int distance Math.max(i-1,n-i);System.out.println(distance*2);}scan.close…

軟件設計師軟考題目解析12 --每日五題

想說的話&#xff1a;要準備軟考了。0.0&#xff0c;其實我是不想考的&#xff0c;但是吧&#xff0c;由于本人已經學完所有知識了&#xff0c;只是被學校的課程給鎖在那里了&#xff0c;不然早找工作去了。尋思著反正也無聊&#xff0c;就考個證玩玩。 本人github地址&#xf…

種花

分情況&#xff1a; 第一盆k種選擇&#xff0c;之后全部k-1種選擇 每次相乘結果對1e97取模 #include <iostream> #include <vector> #include <algorithm> using namespace std; #define endl \n const int N 1e9 7;int main() {ios::sync_with_stdio(f…

微信小程序iOS禁止上下拉顯示白邊

先上圖暴露出問題 iOS端這個頁面明明正好顯示的&#xff0c;非要能下拉上拉給顯示出來點白邊。這樣不就不好看了嘛。。 想了想是不是支持頁面下拉導致的&#xff0c;加入以下代碼到json文件中。 {"enablePullDownRefresh": false,"usingComponents": {} }…

java009 - Java面向對象基礎

1、類和對象 1.1 什么是對象 萬物皆對象&#xff0c;客觀存在的事物皆為對象。 1.2 什么是面向對象 1.3 什么是類 類是對現實生活中一類具有共同屬性和行為的事物抽象。 特點&#xff1a; 類是對象的數據類型類是具有相同屬性和行為的一組對象的集合 1.4 什么是對象的屬…

project.config.json 文件內容錯誤] project.config.json: libVersion 字段需為 string, string

家人們&#xff0c;遇到了一個新的報錯 于是從網上找了各種方法&#xff0c;有說把開發者工具關閉重啟的&#xff0c;有說開發者工具下載重新下載的&#xff0c;有說開發者工具路徑安裝得在C盤的&#xff0c;均沒有效果 解決方法&#xff1a; 1、運行項目&#xff0c;在開發者…

[安洵杯 2019]easy_serialize_php1

打開題目 題目源碼&#xff1a; <?php$function $_GET[f];function filter($img){$filter_arr array(php,flag,php5,php4,fl1g);$filter /.implode(|,$filter_arr)./i;return preg_replace($filter,,$img); }if($_SESSION){unset($_SESSION); }$_SESSION["user&q…

好的測試數據管理,到底要怎么做?

你的組織是否實施了測試數據管理&#xff1f;如果你的組織處理關鍵或敏感的業務數據&#xff0c;測試數據管理肯定會讓組織受益。與測試數據相關的問題占所有軟件缺陷的 15%&#xff0c;這一事實強調了測試數據的重要性。本文將準確討論測試數據經理職責、測試數據經理需要什么…

java-ssm-jsp廣播劇制作訂閱系統

java-ssm-jsp廣播劇制作訂閱系統 獲取源碼——》公主號&#xff1a;計算機專業畢設大全

AFL fork server和fuzzer的交互

看了一些博客&#xff0c;都是在說fuzzer和fork server進行交互&#xff0c;由fork server fork出子進程來執行程序&#xff0c;但是不太明白這兩者到底是如何在代碼層面進行交互的。 run_target中有這么一段代碼&#xff0c;大概意思是fuzzer給fork server傳遞prev_timed_out…

13.網絡游戲逆向分析與漏洞攻防-網絡通信數據包分析工具-如果沒有工具就創造工具

內容參考于&#xff1a; 易道云信息技術研究院VIP課 上一個內容 &#xff1a;12.游戲網絡通信存在的問題 現在把游戲網絡的架構看了一個小小的大概&#xff0c;可以用它的接口發數據接收數據了&#xff0c;如果真正想用它這一套東西&#xff0c;真正核心不在于它的接口而在于…

2024GAS《聲學大講堂》

由中國電子音響行業協會主辦&#xff0c;上海市浦東新區先進音視頻技術協會承辦的GAS《聲學大講堂》2021年開播&#xff0c;三年來GAS《聲學大講堂》開設了“沉浸聲音頻與藝術”、“智能車載音頻”、“智能可穿戴”、“智能耳機”、“智能音箱”、“專業音響”、“助聽/輔聽設備…

老衛帶你學---leetcode刷題(268. 丟失的數字)

268. 丟失的數字 問題 給定一個包含 [0, n] 中 n 個數的數組 nums &#xff0c;找出 [0, n] 這個范圍內沒有出現在數組中的那個數。 示例 1&#xff1a; 輸入&#xff1a;nums [3,0,1] 輸出&#xff1a;2 解釋&#xff1a;n 3&#xff0c;因為有 3 個數字&#xff0c;所以…

R語言安裝和簡單入門HelloWorld用法

R語言安裝和簡單入門HelloWorld用法 #R語言安裝地址 https://www.r-project.org/ click->CRAN mirror->選擇China下列表&#xff1a; https://mirrors.tuna.tsinghua.edu.cn/CRAN/ 選擇Download R for Windows 選擇base Download R-4.3.2 for Windows 下載文件R-4.3.2-…