mybatis查询返回一个对象带有集合

Mybatis中select查询语句返回一个新对象的实例集合(resultMap) 文章目录需求mapper接口mapper.xmlselect语句resultMap 需求 HotelPriceAll是dto中的一个新的对象。 在一个mapper.xml中,查询语句要返回另一个对象,所以需要添加新的resultMap。 本次案例中查询语句返回的是hotel_id和MIN(now_price),为了让MIN(now_price)和resultMap中的lessPrice对应起来,我... 阅读详情
AI摘要

本文介绍如何使用MyBatis Plus进行主子表联查,通过实例演示了配置mapper.xml文件中resultMap的方法,以及如何避免列名冲突,确保查询结果正确返回。

首先,先建几个测试类,主子表通过grade_id关联,具体属性注释我就省略不写了,大家能看懂
主表
    @Data
    @TableName("grade")
    public class Grade implements Serializable {
        private Long id;
        private String name;
        private String address;
        }

子表1
@Data
@TableName("teacher")
public class Teacher implements Serializable {
    private Long id;
    private String name;
    private Integer age;
    private String categroy;
    private Integer level;
    private Long gradeId;        // 关联主表id
    }


子表2
@Data
@TableName("student")
public class Student implements Serializable {
    private Long id;
    private String name;
    private Integer age;
    private String address;
    private Long gradeId;        // 关联主表id
}

表结构和实体类一样我就不放了,没啥特别的
其次,创建一个DTO用来接收查询出来的结果,这个大家都懂,不解释
@Data
public class GradeDTO implements Serializable {
    private Long id;
    private String name;
    private String address;
    private List<Teacher> teacherList;
    private List<Student> studentList;
}

重点,配置mapper.xml文件
首先需要配置resultMap用来接收返回结果,这个大家百度得到,关联集合就是用collection,如下
    <resultMap type="com.kasi.mybatis_plus.model.GradeDTO" id="gradeMap">
    <id column="id" property="id"/>
    <result column="name" property="name"/>
    <result column="address" property="address"/>
    <collection property="teacherList" ofType="com.kasi.mybatis_plus.model.Teacher" >
        <id column="t_id" property="id"/>
        <result column="t_name" property="name"/>
        <result column="t_age" property="age"/>
        <result column="t_categroy" property="categroy"/>
        <result column="t_level" property="level"/>
    </collection>
    <collection property="studentList" ofType="com.kasi.mybatis_plus.model.Student">
        <id column="s_id" property="id"/>
        <result column="s_name" property="name"/>
        <result column="s_age" property="age"/>
        <result column="s_address" property="address"/>
    </collection>
</resultMap>

常用的属性就不说了,特别要注意的是ofType这个要指向各自表的实体类,然后子表的column属性不要和主表重名,一旦重名就会出问题,不知道是不是我配置的问题,希望有大佬指教,反正不重名就可以
接下来就是查询语句了,很简单,只要别名和上面resultMap对的上就ok
    <select id="get" resultMap="gradeMap">
    SELECT
        a.id,
        a.name,
        a.address,
        b.id as t_id,
        b.name as t_name,
        b.age as t_age,
        b.categroy as t_categroy,
        b.level as t_level,
        c.id as s_id,
        c.name as s_name,
        c.age as s_age,
        c.address as s_address
    FROM grade a
    LEFT JOIN teacher b ON a.id=b.grade_id
    LEFT JOIN student c ON a.id=c.grade_id
    WHERE a.id=#{id}
</select>

最后,看看查询结果,其实很简单的,网上教程也很多,但是别名那个地方很多人都没有强调导致犯了很多错
ps:查询集合也是一样的,不说了
数据表查询

实际查询结果
{
"id": 1,
"name": "3年1班",
"address": "三楼",
"teacherList": [
    {
        "id": 1,
        "name": "宋元桥",
        "age": 50,
        "categroy": "武当",
        "level": 1,
        "gradeId": null
    },
    {
        "id": 2,
        "name": "俞莲舟",
        "age": 43,
        "categroy": "武当",
        "level": 2,
        "gradeId": null
    }
],
"studentList": [
    {
        "id": 1,
        "name": "金毛狮王",
        "age": 47,
        "address": "冰火岛",
        "gradeId": null
    },
    {
        "id": 2,
        "name": "紫衫龙王",
        "age": 39,
        "address": "灵蛇岛",
        "gradeId": null
    }
]
}
 

mybatis where 条件为list集合处理 欢迎关注博主公众号:【纯洁的明依】文章由陈晓阳原创。 本人微信:chenxiaoyangzxy. 免费提供本人大量学习资料。 在mybatis 编写sql时,常常会遇到条件为list的一个集合,我们在xml里如何进行遍历呢? 代码如下: <if test="ids!=null and ids!='' and ids.size()>0"> id in... 阅读详情

相关推荐

深入浅出横向联邦学习、纵向联邦学习、联邦迁移学习

深入浅出解析横向联邦学习(Horizontal Federated Learning)、纵向联邦学习(Vertical Federated Learning)和联邦迁移学习(Federated Transfer Learning)有多个机构(比如几家不同的银行,或者几家医院)都拥有一些数据,他们希望联合起来训练一个更强大的机器学习模型,但出于隐私保护或法规要求,他们不能直接把数据共享出来。联邦学习就是为了解决这个问题而提出的。它的核心思想是“数据不动模型动”,即数据保留在本地,参与方共同训练模型。

frostmelody 全网同名,大家多多关注呀~ 持续分享优质内容! 2467

mybatis查询返回单个实体,实体含有集合元素

mybatis多条数据对应一个实体映射方式

limy的博客 962

AI在个性化营养方案制定中的应用:从代谢组学到膳食规划

本文章的主要目的是全面探讨AI在个性化营养方案制定过程中的应用,从代谢组学的数据收集与分析,到基于这些数据制定合理的膳食规划。范围涵盖了AI技术在该领域的核心概念、算法原理、数学模型、实际项目应用,以及相关的工具和资源推荐等方面。旨在为科研人员、营养师、软件开发人员等提供一个系统的知识体系,帮助他们更好地理解和应用AI技术来实现个性化营养方案的制定。核心概念与联系:介绍AI、代谢组学和膳食规划的核心概念,以及它们之间的相互联系,并通过文本示意图和Mermaid流程图进行展示。

架构师的AI之路,分享AI应用开发架构的学习与实践。 1032

Mybatis 返回对象中包含 List集合

遇到这种情况的实体类,需要在mapper.xml文件里使用resultMap标签以及其他子标签.先贴代码:实体类:UserEntity类:private Long id;// 用户id private String username;// 用户名 private String password;// 密码 private List userRoles;// 用户角色集合Role类:public class Role { private Integer id; //角色id private String

geejkse_seff的博客 2066

Nginx健康检查实战:如何用第三方模块提升服务可用性(附详细配置)

本文深入探讨了如何通过集成第三方健康检查模块来提升Nginx的服务可用性。文章对比了Nginx默认被动检查的局限性,并详细介绍了主动健康检查的核心优势、主流模块选型,以及以nginx_upstream_check_module为例的实战部署与配置指南,帮助运维人员构建更可靠的负载均衡架构。

weixin_28331555的博客 308

指纹浏览器降维打击(下):Cloudflare Turnstile 与 hCaptcha 的底层交互逻辑

本文将深度拆解:Turnstile 与 hCaptcha 的 Iframe 沙箱通信机制,动态混淆 JS 与 PoW(工作量证明)的物理破解法则,以及如何通过 C++ 底层事件合成与环境基因强绑定,实现验证码的“无感过验”。

数据知道的博客 423

MyBatis 01

MyBatis 01

wjl0_7的博客 219

【考研高数-高等数学-基础】第一章 函数、极限、连续

第一章 函数、极限、连续 第二章 导数与微分 第三章 微分中值定理及导数应用 第四章 不定积分 第五章 定积分与反常积分 第六章 定积分的应用 第七章 微分方程 第八章 多元函数微分学 第九章 二重积分 第十章 无穷级数 第十一章 向量代数与空间解析几何及多元微分学在几何上的应用 第十二章 多元积分学及其应用 难题: 极限的递推 微分中值定理的证明题 定积分的不等式和等式的证明 重积分的不等式和等式的证明 线面积分的不等式和等...

刘鑫磊 2034

mybatis遍历实体对象含集合

mybatis遍历实体对象含集合

竹子_bamboo的博客 1289

Halcon 色彩标定:RGB空间下实现白平衡与CCM矩阵合成静态HDR图像

摘要 本文介绍了一种基于Halcon的色彩校正方法,结合白平衡与灰轴约束最小二乘法实现精准颜色还原。方法分为三步:1)自动定位色卡区域并提取灰阶块计算白平衡增益;2)通过前三列色块建立测量值与标准值的映射关系;3)引入灰轴约束条件求解色彩校正矩阵(CCM),确保中性灰区域不偏色。算法采用中位数计算白平衡增益以提高鲁棒性,并通过旋转校正处理色卡倾斜问题。实验表明,该方法能有效消除相机采集的系统色偏,适用于颜色测量、表面检测等机器视觉场景。文末提供了完整代码实现。

LIN943168247的博客 406

YOLOv13有效涨点改进专栏目录 | 本专栏持续更新500+篇内容 | 包含各种卷积、主干网络、各种注意力机制、检测头、损失函数、小目标检测改进、二次创新模块、独家创新等几百种创新点改进

《YOLOv13改进专栏重磅更新》推出500+创新改进方案,涵盖卷积、主干网络、注意力机制、检测头等核心模块优化。专栏提供完整项目代码及答疑服务,包含YOLOv13网络结构解析、环境配置、模型训练全流程指导。内容分为八大模块:卷积优化、注意力机制、细节涨点、主干网络改进、特征融合、检测头优化、小目标检测及Mamba联合改进等,支持多种创新点组合应用,助力科研论文发表。现开放限时订阅,提供试读章节和详细技术解析。

Ai缝合怪、助力小伙伴高效发论文 3392

mybatis主子表嵌套查询,返回一个对象带有集合属性

前段时间在工作中遇到需要一对多关联查询的情况,百度了好久遇到各种坑,所以在此记录一下,话不多说直接开始 首先,先建几个测试类,主子表通过grade_id关联,具体属性注释我就省略不写了,大家能看懂 主表 @Data @TableName("grade") public class Grade implements Serializable { private Long id; ...

Lyuuku爱吃苹果 9413

YOLOv11 改进入门篇 | 轻量级涨点技巧:GhostConv 替代普通卷积的实战指南

摘要: 本文介绍如何通过GhostConv改进YOLOv11,实现轻量化涨点。YOLOv11深度增加导致参数量、延迟和内存占用上升,GhostConv通过“本征特征+线性变换”策略,在精度几乎无损的情况下降低30%-50%计算量。文章详细解析GhostConv原理,对比普通卷积的参数量和FLOPs优势,并提供完整的代码级改造流程,包括模块实现、注册及网络配置。实验表明,该方法有效提升边缘端推理效率,适用于移动端等资源受限场景。

shrgegrb的博客 1657

Mybatis 之查询返回一个对象带有集合

https://blog.youkuaiyun.com/java_dea/article/details/105987847

const_ 1199

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

mybatis Sql查询 返回对象或者list数据中包含一个对象的list集合

1.查询的数据对象 @Data public class JdOrder implements Serializable{ private Long orderId; private Long finishTime; private Integer orderEmt; private Long orderTime; private Long pare...

yijian941215的博客 2万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

mybatis主从表关联查询,返回对象带有集合属性

昨天有同事让我帮着看一个问题,mybatis主从表联合查询,返回的对象封装集合属性。我先将出现的问题记录一下,然后再讲处理方法也简单说明一下: VersionResult为接收返回数据对象,get\set方法我这里就省略了。 public class VersionResult extends BaseResult implements Serializable{ private Integer...

weixin_43839457的博客 6712

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

MyBatis_MyBatis之查询返回对象集合

1.引入 通过前面几节课程,我们了解了使用MyBatis实现基本的增删查改的操作,然后我们又说了一下载增删查改中的参数传递问题。我们之前的操作主要是针对一个对象进行的操作。那么当我们的返回值是一个集合的时候该如何进行处理呢?那么现在我们较为详细的了解一下查询操作。 2.实现返回值是一个对象集合(List<Object>)的操作 (1).在接口中定义编写查询的方法 public List<Employee> getEmpsByLastNameLike(String ..

u013185175的博客 8777

mybatis Sql查询 返回对象或者list数据中包含一个对象的list集合

1. 查询的数据对象 @Data public class JdOrder implements Serializable{ private Long orderId; private Long finishTime; private Integer orderEmt; private Long orderTime; private Long pa...

WULILL的博客 5417

详解Mybatis查询之resultType返回值类型问题【4种情况】

代码示例如下:

siaok的博客 1万+

Mybatis查询多条记录并返回List集合

实体对象如下: private String vend_id; private String vend_name; private String vend_address; private String vend_city; private String vend_state; private String vend_zip; private String vend_country; priv...

weixin_41334434的博客 2552

Mybatis 查询返回List集合

Mybatis 查询返回List集合

qq_44945094的博客 2万+

mybatis返回一个map集合

mybatis中resulttype如下定义即可: &amp;lt;!--查询订单状态表,返回一个map集合--&amp;gt; &amp;lt;select id=&quot;selOrdersState&quot; resultType=&quot;java.util.HashMap&quot;&amp;gt; select state_id,state from order_state &amp;

weixin_43069201的博客 4万+

Mybatis查询结果为空时,为什么返回值为NULL或空集合?

文章来源:https://c1n.cn/6l7NH目录背景JDBC 中的 ResultSet 简介简单映射回归最初的问题:查询结果为空时的返回值结论背景一行数据记录如何映射成一个 Java 对象,这种映射机制是 MyBatis 作为 ORM 框架的核心功能之一,也是我们这篇文章需要学习的内容。开始前我们先看一个问题:你是否曾经在学习 Mybatis 的时候跟我有一样的疑问...

石杉的架构笔记 7198

MyBatis查询无数据的返回值

文章目录一. 问题二. 结论参考资料 一. 问题 当在Dao层查询时,如果没有数据时返回的List是null么? Emp emp = EmpDao.queryEmp(id); List<Emp> list = EmpDao.queryEmpInfo(params); 二. 结论 如果Dao的返回值是实体,则mybatis查询无记录时返回null。因此,这里判空需要用"==...

zijikanwa 5791
上一篇: java后台框架进化史--------Dubbo
下一篇: github新手安装和使用
U & Me
博客等级 码龄9年 3粉丝 10原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值