当前位置: 首页 > news >正文

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"}}]
}

相关文章:

SpringBoot 自定义映射规则resultMap association一对一

介绍 例&#xff1a;学生表&#xff0c;班级表&#xff0c;希望在查询学生的时候一起返回该学生的班级&#xff0c;而一个实体类封装的是一个表&#xff0c;如需要多表查询就需要自定义映射。 表结构 班级表 学生表 SQL语句 SELECT a.id,a.name,a.classes,b.id classes…...

华东地区汽车相关夹具配套企业分布图,你了解多少?

1、华东地区 上海汽车整车厂众多&#xff0c;大多以设计研发为主&#xff0c;注重技术和造型&#xff0c;这与他们的整体风格息息相关。 作为与国际接轨的特大城市&#xff0c;中国的经济、交通、科技、工业、金融、贸易、会展和航运中心&#xff0c;聚集了大量的设计和研发人…...

SpringBoot - 后端数据返回前端各个数据类型全局格式化

全局配置 import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.databind.module.SimpleModule; import com.fasterxml.j…...

实验室记账项目(java+Mysql+jdbc)

前言&#xff1a; 因为自己学习能力有限和特殊情况必须要找一个项目来做&#xff0c;但是上网搜的那些项目有两种&#xff08;一种是技术太多&#xff0c;自己能力不够&#xff1b;一种是技术太少&#xff0c;项目太简单&#xff09;导致都不适合本人&#xff0c;本人现有技术只…...

spring boot 整合 minio存储 【使用篇】

zi导入依赖 <!--minio--><dependency><groupId>io.minio</groupId><artifactId>minio</artifactId><version>8.0.3</version></dependency> yml配置&#xff08;默认配置&#xff09; spring:# 配置文件上传大小限制s…...

【Redis】深入理解 Redis 常用数据类型源码及底层实现(5.详解List数据结构)

本文是深入理解 Redis 常用数据类型源码及底层实现系列的第5篇&#xff5e;前4篇可移步(&#xffe3;∇&#xffe3;)/ 【Redis】深入理解 Redis 常用数据类型源码及底层实现&#xff08;1.结构与源码概述&#xff09;-CSDN博客 【Redis】深入理解 Redis 常用数据类型源码及底…...

Vue+Flask电商后台管理系统

在这个项目中&#xff0c;我们将结合Vue.js前端框架和python后端框架Flask&#xff0c;打造一个功能强大、易于使用的电商后台管理系统 项目演示视频&#xff1a; VueFlask项目 目录 前端环境&#xff08;Vue.js&#xff09;&#xff1a; 后端环境&#xff08;python-Flask&…...

SpringBoot保姆级入门文档

目录 1、SpringBoot的优点 2、和Spring、SpringMVC的对比 3、Xml 和 JavaConfig 1、SpringBoot的优点 2、和Spring、SpringMVC的对比 3、Xml 和 JavaConfig Spring 使用 Xml 作为容器配置文件&#xff0c;在 3.0 以后加入了 JavaConfig&#xff0c;使用 java 类做配置文件使…...

Springboot同一台服务器部署多个项目,导致redis混淆,如何根据不同项目区分

在Spring Boot应用中,如果在同一台服务器上部署了多个项目,并且每个项目都使用Redis作为缓存或存储,为了避免Redis数据混淆,你需要确保各个项目在访问Redis时使用不同的数据库索引号、键前缀或者连接配置。 以下是一些区分不同项目Redis数据的方法: 使用不同数据库索引:…...

redis启动错误

错误&#xff1a; Creating Server TCP listening socket 127.0.0.1:6379: bind: No error redis-server.exe redis.windows.conf redis-cli.exe shutdown auth "yourpassword"...

单片机烧录方式 -- IAP、ISP和ICP

目录 背景 1 什么是ICP 2 什么是ISP 3 什么是IAP 4 总结 背景 对于51单片机&#xff0c;我们使用STC-ISP上位机软件通过串口进行程序的烧写&#xff1b;对于STM32系列单片机&#xff0c;我们既可以通过串口烧写程序&#xff0c;也能通过JLink或是STLink进行程序的烧写&am…...

数据结构(C语言版)01

//顺序存储 int main(){ int ans[5]{1,1,1,1,3};//定义并初始化 printf("%d",ans[4]); return 0; } //链式存储 Typdef struct Lnode{ElemType data;struct Lnode *next; }Londe,*LinKlist;Londe *L; L(LinkList)malloc(sizeof(Lnode)); A->nextB;B->nextC;…...

Node.js-文件读取输入

Node.js-文件读取输入 fs模块&#xff08;操作文件的模块&#xff09; 读取 fs.readFile(path[, options], callback)&#xff1b;[]里面 是可选参数&#xff0c;表示以什么样的编码 格式读取path是路径callback表示读取完成后的回调函数 例子 fs.readFile (‘./files/11.txt…...

时隔一年的测评:gpt3.5发展到什么程度了?

名人说&#xff1a;一花独放不是春&#xff0c;百花齐放花满园。——《增广贤文》 作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 一、简要介绍1、chatgpt是什么&#xff1f;2、主要特点3、工作原理4、应用限制5、使…...

[RCTF2015]EasySQL1 题目分析与详解

一、题目介绍&#xff1a; 1、题目来源&#xff1a; BUUCTF网址 2、题目介绍&#xff1a; 拿到flag。 二、解题思路&#xff1a; 我们发现题目首页有登录和注册账号两个选项&#xff0c;我们首先尝试注册账号&#xff0c;尝试注册username为admin的账号&#xff0c;输入密码…...

开源的 Python 数据分析库Pandas 简介

阅读本文之前请参阅-----如何系统的自学python Pandas 是一个开源的 Python 数据分析库&#xff0c;它提供了高性能、易用的数据结构和数据分析工具。Pandas 特别适合处理表格数据&#xff0c;例如时间序列数据、异构数据等。以下是对 Pandas 的简明扼要的介绍&#xff0c;包括…...

LeetCode 2125.银行中的激光束数量

银行内部的防盗安全装置已经激活。给你一个下标从 0 开始的二进制字符串数组 bank &#xff0c;表示银行的平面图&#xff0c;这是一个大小为 m x n 的二维矩阵。 bank[i] 表示第 i 行的设备分布&#xff0c;由若干 ‘0’ 和若干 ‘1’ 组成。‘0’ 表示单元格是空的&#xff0…...

【探索AI】Sora - 探索AI视频模型的无限可能

Sora - 探索AI视频模型的无限可能 随着人工智能技术的飞速发展&#xff0c;AI视频模型已成为科技领域的新热点。而在这个浪潮中&#xff0c;OpenAI推出的首个AI视频模型Sora&#xff0c;以其卓越的性能和前瞻性的技术&#xff0c;引领着AI视频领域的创新发展。让我们将一起探讨…...

NGINX的重写与反向代理机制解析

目录 引言 一、重写功能 &#xff08;一&#xff09;if指令 1.判断访问使用的协议 2.判断文件 &#xff08;二&#xff09;return指令 1.设置返回状态码 2.返回指定内容 3.指定URL &#xff08;三&#xff09;set指令 1.手动输入变量值 2.调用其它变量值为自定义变…...

JVM的深入理解

1、JVM&#xff08;Java虚拟机&#xff09;&#xff1a;我们java编译时候&#xff0c;下通过把avac把.java文件转换成.class文件&#xff08;字节码文件&#xff09;&#xff0c;之后我们通过jvm把字节码文件转换成对应的cpu能识别的机器指令&#xff08;翻译官角色&#xff09…...

告别窗口遮挡烦恼:3种方法让PinWin成为你的桌面效率助手

告别窗口遮挡烦恼&#xff1a;3种方法让PinWin成为你的桌面效率助手 【免费下载链接】PinWin Pin any window to be always on top of the screen 项目地址: https://gitcode.com/gh_mirrors/pin/PinWin 你是否经常在写代码时需要参考文档&#xff0c;却频繁被其他窗口遮…...

专用镗床主轴箱设计(有cad图+文献翻译+ppt)

专用镗床主轴箱是机械加工领域的核心部件&#xff0c;其设计水平直接影响加工精度与设备稳定性。主轴箱通过精准传递动力并控制主轴运动&#xff0c;为镗削、钻孔等工序提供稳定支撑&#xff0c;尤其在复杂曲面加工中&#xff0c;其结构刚性直接决定了工件表面质量。传统主轴箱…...

Golang怎么安装和配置开发环境_Golang环境搭建完整教程【总结】

Go环境无需传统IDE&#xff0c;只需装好go命令、配置PATH&#xff08;macOS/Linux检查which go或修改shell配置&#xff0c;Windows检查PowerShell的Get-Command go及系统环境变量&#xff09;&#xff0c;启用模块模式&#xff08;go env -w GO111MODULEon&#xff09;、清理v…...

从双非到东南网安:一名普通考生的备考心路与策略复盘

1. 从迷茫到坚定&#xff1a;我的考研目标选择历程 作为一个双非院校的普通学生&#xff0c;我最初对考研这件事充满了迷茫。记得大三上学期结束时&#xff0c;身边的同学都在讨论考研目标&#xff0c;而我却连考什么专业、什么学校都没想清楚。这种状态持续了整整半年&#xf…...

【关系抽取实战】从算法原理到工业级应用:构建知识图谱的核心引擎

1. 关系抽取&#xff1a;知识图谱的"灵魂捕手" 想象一下&#xff0c;你正在整理一个杂乱无章的图书馆。书架上堆满了各种书籍&#xff0c;但没有任何分类标签。这时候&#xff0c;你需要找出《红楼梦》和曹雪芹之间的关系&#xff0c;或者发现牛顿与万有引力定律的关…...

实战指南:从零到一掌握Logit回归全流程

1. 什么是Logit回归&#xff1f;它能解决什么问题&#xff1f; 第一次接触Logit回归时&#xff0c;我也被这个专业名词吓到了。后来在实际项目中用了才发现&#xff0c;它其实就是处理分类问题的利器。简单来说&#xff0c;当你的因变量Y是"是/否"、"买/不买&qu…...

零成本掌握专业音频编辑:Audacity免费音频处理终极指南

零成本掌握专业音频编辑&#xff1a;Audacity免费音频处理终极指南 【免费下载链接】audacity Audio Editor 项目地址: https://gitcode.com/GitHub_Trending/au/audacity 在数字内容创作蓬勃发展的今天&#xff0c;高质量的音频处理已成为专业创作的标配。然而&#x…...

别再傻傻分不清了!一文搞懂激光雷达里的‘零差’和‘外差’探测(附FMCW/ToF对比)

激光雷达核心技术解析&#xff1a;零差与外差探测的本质差异与应用场景 在自动驾驶和遥感测绘领域&#xff0c;激光雷达技术正经历着从机械式到固态、从间接测量到相干探测的演进。当我们拆解一台现代激光雷达设备时&#xff0c;会发现其核心测距原理主要分为两大技术路线&…...

三步实现Windows接收iPhone投屏:AirPlay2-Win完整使用指南

三步实现Windows接收iPhone投屏&#xff1a;AirPlay2-Win完整使用指南 【免费下载链接】airplay2-win Airplay2 for windows 项目地址: https://gitcode.com/gh_mirrors/ai/airplay2-win 还在为Windows电脑无法接收iPhone或iPad的屏幕镜像而烦恼吗&#xff1f;AirPlay2-…...

从单机到集群:基于RoboMaster SDK的Tello无人机编队与实时视频流整合实践

1. 从单机到集群&#xff1a;Tello无人机编队飞行入门 第一次接触Tello无人机编队飞行时&#xff0c;我被这个看似简单实则复杂的系统深深吸引了。想象一下&#xff0c;几台小小的无人机在空中整齐划一地完成各种动作&#xff0c;还能实时传回多路视频画面&#xff0c;这背后需…...