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.hqwc.cn/news/501391.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java进阶-反射

来学习一下Java的反射&#xff0c;通过Class实例获取class信息的方法称为反射&#xff08;Reflection&#xff09;&#xff0c;内容如下 一、反射机制 1、概述 在运行状态中&#xff0c;对于任意一个类&#xff0c;都能够知道这个类的所有属性和方法&#xff1b;对于任意一…

RK3568驱动指南|第二篇 字符设备基础-第7章 menuconfig图形化配置实验(二)

7.2 Kconfig 语法简介 上一小节我们打开的图形化配置界面是如何生成的呢&#xff1f;图形化配置界面中的每一个界面都会对应一个Kconfig文件。所以图形化配置界面的每一级菜单是由Kconfig文件来决定的。 图形化配置界面有很多菜单。所以就会有很多Kconfig文件&#xff0c;这也就…

揭秘Android Tombstone:崩溃位置的秘密研究-Crash Location

由于一些工作原因&#xff0c;最近对Android系统发生crash的Tombstone展开了一定的研究。 这里我谈一下关于对于Android Libstagefright 整数溢出漏洞的crash Tombstone的研究。看一下在包含整数溢出功能的MP4文件从PC传输进Android的时候造成的Tombstone0_0。 1、研究头部信…

武汉灰京文化:游戏产业链中不可或缺的重要环节

随着游戏市场持续蓬勃发展&#xff0c;武汉灰京文化凭借其深耕游戏市场、发展优势平台以及与各大游戏大厂的深度合作&#xff0c;在游戏的开发、推广和运营过程中展现出独特的专业能力和资源优势。公司不仅能够为游戏大厂提供专业的运营支持&#xff0c;还能与其紧密合作&#…

边缘计算与任务卸载基础知识

目录 边缘计算简介任务卸载简介参考文献 边缘计算简介 边缘计算是指利用靠近数据生成的网络边缘侧的设备&#xff08;如移动设备、基站、边缘服务器、边缘云等&#xff09;的计算能力和存储能力&#xff0c;使得数据和任务能够就近得到处理和执行。 一个典型的边缘计算系统为…

大数据信用报告如何查询?有哪些需要注意的?

大数据信用对于有资金周转的人来说是比较重要的&#xff0c;主要由于大数据信用无形的被不少机构用于贷前风控&#xff0c;无论是机构要求的还是自查&#xff0c;提前了解大数据信用情况是常规操作&#xff0c;那大数据信用报告如何查询?有哪些需要注意的呢?本文详细为大家讲…

怎么理解发包服务器?(作用)

随着云计算的快速发展&#xff0c;越来越多的企业开始采用云计算服务来降低IT成本和提高业务灵活性。在云计算领域中&#xff0c;发包服务器是一种常见的服务模式&#xff0c;但很多人对其理解并不深入。本文将对发包服务器进行深入解析&#xff0c;探讨其作用和价值。 发包服务…

Personality Enhanced Emotion Generation Modeling for Dialogue Systems

对话系统的人格增强情绪生成建模 摘要1 介绍2 相关工作2.1 个性、情感和情绪2.2 个性的理论模型2.3 在对话系统中整合个性情感建模 3 方法3.1 任务定义3.2 个性增强型情感生成模型3.3 情感状态推理单元3.3.1 情绪遗忘机制3.3.2 情感调节机制 3.4 训练 4 实验4.1 数据集 PELD 摘…

基于springboot实现的健康监控管理系统

一、系统架构 前端&#xff1a;html | bootstrap | jquery | css 后端&#xff1a;springboot | thymeleaf | mybatis 环境&#xff1a;jdk1.8 | mysql | maven 二、代码及数据库 三、功能介绍 01. 体检测评 02. 运动处方 03. 运动处方明细 04. 运动处方-打卡…

利用DrissionPage库写一个简单的哔哩哔哩自动评论引流脚本

以前利用selenium写过哔哩哔哩简单的脚本&#xff0c;后来数据丢失&#xff0c;痛苦万分&#xff0c;今天看到这个库了解一下便写了这个脚本。 切记做好数据备份 文章目录 DrissionPage简介&#xff1a;代码部分 DrissionPage和selenium很像&#xff0c;但是更简单&#xff0c;…

女性三八节礼物攻略:她无法抗拒的五大礼物

随着春风的温柔拂面&#xff0c;我们即将迎来一年一度的三八国际妇女节。这个特别的日子&#xff0c;不仅是对女性贡献的认可和庆祝&#xff0c;也是向我们生命中的女性表达感激和爱意的绝佳时机。在这个充满温馨和敬意的时刻&#xff0c;我们常常在思考&#xff0c;如何用一份…

找工作的小伙伴有福利了

简历模块 资料说明 ✅内容&#xff1a;300多套简历模块&#xff0c;包含单页简历150套、双页简历15套、三页简历25套、四页简历50套、表格简历15套、自荐信20 套&#xff0c;封面简历、英文简历150 ✅文件格式&#xff1a;word ✅ 文件大小&#xff1a;449MB 资料文件展示 资…