mybatis/mybatis-plus一对多查询

Mybatis-Plus用纯注解搞定一对多查询 业务中很常见的就属于典型的一对多关系. 假设我们需要将用户信息(包括了用户对应的角色信息)查询出来。 阅读详情

主要是返回数据类型对应关系需要注意一下。具体实现示例如下,

1、查询结果实体类(一对多中的"一")

package sol.erms.model.entity.process.use;


import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 借阅记录表/借阅主表导出表
 * </p>
 *
 * @author groot
 * @since 2020-03-18
 */
@Data
public class ErmsUseMainExport implements Serializable {

    private static final long serialVersionUID = 1L;


    /**
     * 借阅编号
     */
    
    private String useNo;

    /**
     * 借阅人
     */
    
    private String ermsLender;

    /**
     * 借阅目的
     */
    
    private String ermsLendingpurpose;

    //条目集合
   
    private List<ERMSUseExport> archList;






}

2、查询结果子对象实体类(一对多中的"多")

package sol.erms.model.entity.process.use;

import lombok.Data;

import java.util.Date;

@Data
public class ERMSUseExport {

    
    private String archName;

    
    private String archNo;

    
    private String ermsApplymode;

   
    private Date startUseDate;

    
    private String ermsLendhandler;

    
    private String ermsBorrowReviewer;

    
    private Date ermsReturntime;

    
    private Date ermsReturner;

    
    private Date ermsReturnhandler;

    
    private Date ermsReturnReviewer;

}

3、mapper/dao方法:

List<ErmsUseMainExport> getMainListUseCollectionByCondition(Map<String, Object> map);

4、xml中的sql。定义返回数据类型,通过collection标签对应子集即可。


    <resultMap type="sol.erms.model.entity.process.use.ErmsUseMainExport" id="useMainResult">
        <result column="USE_NO" property="useNo" />
        <result column="ERMS_LENDER" property="ermsLender" />
        <result column="ERMS_LENDINGPURPOSE" property="ermsLendingpurpose" />
        <collection property="archList" ofType="sol.erms.model.entity.process.use.ERMSUseExport" column="id">
            <result column="ARCH_NAME" jdbcType="TIMESTAMP" property="archName" />
            <result column="ARCH_NO" jdbcType="VARCHAR" property="archNo" />
            <result column="ERMS_APPLYMODE" property="ermsApplymode" />
            <result column="START_USE_DATE" property="startUseDate" />
            <result column="ERMS_LENDHANDLER" property="ermsLendhandler" />
            <result column="ERMS_BORROW_REVIEWER" property="ermsBorrowReviewer" />
            <result column="ERMS_RETURNTIME" property="ermsReturntime" />
            <result column="ERMS_RETURNER" property="ermsReturner" />
            <result column="ERMS_RETURN_HANDLER" property="ermsReturnhandler" />
            <result column="ERMS_RETURN_REVIEWER" property="ermsReturnReviewer" />
        </collection>
    </resultMap>



<!--条件查询借阅+档案(集合)数据-->
    <select id="getMainListUseCollectionByCondition" resultMap="useMainResult">
        SELECT
            m.`USE_NO`,
            m.`ERMS_LENDER`,
            m.`ERMS_LENDINGPURPOSE`,
            m.ERMS_APPLYMODE,
            u.START_USE_DATE,
            u.ERMS_LENDHANDLER,
            u.ERMS_BORROW_REVIEWER,
            u.ERMS_RETURNTIME,
            u.ERMS_RETURNER,
            u.ERMS_RETURN_HANDLER,
            u.ERMS_RETURN_REVIEWER,
            a.ARCH_NO,
            a.ARCH_NAME
        FROM
            erms_use_main m
            LEFT JOIN erms_use u ON m.ID = u.ERMS_USE_MAIN_ID
            LEFT JOIN erms_archived_arch_ru a ON u.ERMS_ARCH_FORM_ID = a.ID
        <where>
            <if test="DEL_STATUS!=null and DEL_STATUS!=''">
                m.DEL_STATUS = #{DEL_STATUS}
            </if>
            <if test="ids!=null and ids.size()>0">
                m.ID IN
                <foreach collection="ids" item="id" open="(" close=")" separator="," >
                    #{id}
                </foreach>
            </if>
        </where>
    </select>

 

Mybatis一对多和多对多查询 学习 阅读详情

相关推荐

MybatisPlus多表连接查询一对多分页查询数据

在日常一线开发过程中,多表连接查询不可或缺,基于MybatisPlus多表连接查询究竟该如何实现,本文将带你找到答案。

Java知识图谱的博客 3074

mybatis plus一对多查询(经典案例)

mybatis plus一对多查询(经典案例)

我是老伯的博客 1万+

SpringBoot项目实战:用MyBatis-Plus-Join搞定多表联查(附完整代码)

本文详细介绍了如何使用MyBatis-Plus-Join在SpringBoot项目中实现高效的多表联查操作。通过实战案例,从环境搭建、实体配置到复杂查询和性能优化,全面解析MPJ的核心功能,帮助开发者简化SQL编写,提升开发效率。

weixin_29232121的博客 239

MyBatis-Plus实现多表联查(一对一,一对多使用)

在使用mybatis-plus开发需求的时候会发现对于大部分的业务场景来说都会使用到join来进行联表查询,但是mybatis-plus封装的 mapper 不支持 join,如果需要支持就需要自己手动去实现,给大家推荐一个好用的插件(Mybatis-Plus-Join(简称 MPJ)是一个 Mybatis-Plus的增强工具,在 MyBatis-Plus 的基础上只做增强不做改变,为简化开发、提高效率而生。

慷慨的博客 2万+

电网加密芯片全解析:分类与功能​

在电网数字化转型的浪潮中,数据安全和设备的身份认证变得愈发重要。加密芯片作为保障电网信息安全的核心部件,凭借独特的技术特性,在不同应用场景下发挥着关键作用,有力推动着智能电网的安全稳定发展。接下来,我们将对电网中常见的加密芯片展开分类介绍,并探讨其对应的功能。​。

1963

2025年普通人转向人工智能运维(AIOps)学习建议(附最新技术实践与资源)

AIOps不仅是技术的叠加,更是运维流程的重构。建议通过“学习-实践-反馈”循环,逐步从工具使用者成长为解决方案设计者。如需完整资源链接,可访问上述推荐的优快云博客及GitHub仓库。

资深全栈架构师,乐于在 优快云 分享技术见解,与大家携手共进,共攀技术巅峰! 3096

MyBatis Plus 如何实现连表查询 mybatis plus join

MyBatis-Plus 连表插件 mybati-plus-join, 完全按照mybats plus API风格扩展,支持一对一返回映射,多对多返回映射,自定义返回ResultType,引入后不会对原有的业务产生影响, 只拓展不修改

qq_31116181的博客 6万+

大整数因数分解工具——yafu

可以将大整数放在一个新建文件中——data.txt,最后面一定要换行,不然会出现eof;done processing batchfile,运行命令。2.点击设置——系统——系统信息——高级系统设置——环境变量——点击PATH(上下都可以)——新建 添加yafu-x64.exe 所在路径——点击确定。,如果整数数过长,会出现错误mismatched parens;1.找到yafu-x64.exe 所在的文件路径。如果出现以下图像,说明配置成功。3.打开cmd,输入。

l2ohvef的博客 6156

mybatis plus 一对一 、一对多映射

基于mybatis plus的一对一和一对多映射查询、mybatis plus 风格的无xml链表查询

qq_31116181的博客 1万+

帕塞瓦尔定理(Parseval‘s theorem)的证明

帕塞瓦尔定理(Parseval's theorem)表明了信号在时域和频域上的能量相等。

weixin_42428226的博客 2万+

基于PWM的汽车仪表步进电机微步驱动优化实践

本文深入探讨了基于PWM的微步驱动技术,用于优化汽车仪表步进电机的运行性能。通过将传统的分步驱动升级为PWM微步细分驱动,利用正弦/余弦查表法合成旋转磁场,有效消除了指针抖动与噪声,实现了指针的平滑、精准运动。文章以STM32和VID2905电机为例,提供了详细的硬件连接、代码实现及高级优化技巧,为提升汽车仪表体验提供了实用方案。

weixin_29169505的博客 512

【SSM学习】9、Mybatis Plus 复杂查询通过 xml 的方式实现一对多查询

文章目录问题描述问题分析解决办法 问题描述 工作中,关联表查询必不可少,这里记录笔记方便复制,怎么实现多条记录一对多查询,数据模型如下 问题分析 查询结果为List<UserInfoVo>,其中UserInfoVo实体中,有private List<RoleInfoList> roleInfoList;属性,也就是说,每条用户记录都对应了一个角色list,我这里是举例几个属性 解决办法 直接分析xml,解决具体的实现问题 首先定义result,并设置唯一标识id,注意相关类型设置

Tellsea 2457

群晖、飞牛NAS容器进入终端失败?一步步教你解决Docker Bash错误!(OCI runtime exec failed: exec failed)

群晖、飞牛NAS容器进入终端失败?一步步教你解决Docker Bash错误!(OCI runtime exec failed: exec failed)

XiaoqiangClub的博客 2996

Mybatis03_一对多查询

Mybatis03_一对多查询 student表结构: student表内容: classes表结构: classes表内容: Student实体: package com.blu.entity; import lombok.Data; @Data public class Student { private long id; private String name; private Classes classes; } Classes实体: package com.blu.entity;

BLU_111的博客 6万+

手把手教你学Simulink——基于Simulink的重复控制抑制周期性负载转矩扰动

传统的PI调节器在面对这类特定频率的周期性扰动时,会因积分器的相位滞后而导致转速出现明显的纹波(如6次、12次谐波),严重影响系统的控制精度和静音性能。:要在频率 fd​处获得较高的开环增益以抑制扰动,必须大幅增加PI的比例系数 Kp​,但这会牺牲系统的相位裕度,导致高频共振甚至系统失稳;:电机转速变化时,基频 fbase​会变,导致 6次谐波频率 6×fbase​也在变。设系统的采样周期为 Ts​,目标抑制的周期性扰动频率为 fd​(rad/s),则对应的周期采样点数 N=fd​Ts​2π​。

MHD0815的博客 256

YOLOv13安装教程 手把手教你融合空间注意力机制(SAB)的RAB卷积模块 自动“聚焦”重要的特征 map指标提升8.96,准确率提升3.56

本文提出了一种改进的YOLOv13目标检测模型,通过引入RAB(残差注意力模块)显著提升了检测性能。实验结果显示,添加RAB模块后,mAP指标提升了8.96,准确率提高了3.56%。文章详细介绍了RAB模块的实现方法:1)采用多级残差连接增强特征提取能力;2)结合空间注意力机制(SAB)自动聚焦关键区域;3)通过1×1卷积实现通道维度压缩与恢复。同时提供了完整的模型移植方案,包括配置文件修改、任务处理代码调整以及模块实现细节,为YOLO系列模型的性能优化提供了有效参考。

FJN110的博客 646

Mybatis Plus一对多完整版实战教学!

Mybatis Plus完整版一对多实战教学! 最近做项目用到了mybatis plus 刚使用确实不是很熟练。 增删改查非常方便,但是然项目中需要用到了一对多的一个查询,我却毫无思路,所以在网上查阅了相关资料。结合了多篇文章,才明白了怎么用mybatis做一对多。 进入正题 查阅相关资料,mybatis没办法想jpa那样直接写注解 所以我们今天就是最大程度的简化代码量 首先吧实体类粘出来 这是一个位置的管理实体 @Data @NoArgsConstructor @AllArgsConstructor .

qq_41579123的博客 3295

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

深入解析 MybatisPlus 中实现一对多查询的方法:以食谱餐别与菜单详情为例

本文通过对 MybatisPlus 中实现一对多查询的多种方法进行深入解析和对比分析。

夜郎King的博客 6502

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

mybatis(plus)进行一对一、一对多、多对多查询

mybatis(plus)进行一对一、一对多、多对多查询 一般步骤: 建实体类或者VO类 自定义resultMap 写sql resultMap的编写 一对一查询 建实体类或者VO类中没有属性是自定义的类,正常写resultMap 有的话resultMap中需要使用association 标签,如 <resultMap type="Student" id="studentResultMap"> <id column="id" property="id" /> <re

L2992786的博客 8942

mybatis plus join, mybatis plus连表插件

支持连表查询的mybatis-plus,mybatis-plus风格的连表操作提供 wrapper.leftJoin() wrapper.rightJoin()等操作,支持对一,对多映射

qq_31116181的博客 1万+

mybatis plus join

支持连表查询的mybatis-plus,mybatis-plus风格的连表操作提供 wrapper.leftJoin() wrapper.rightJoin()等操作,只扩展不修改,保留mybatis plus全部功能

qq_31116181的博客 2万+

Mybatis基于注解的一对一和一对多查询

一、数据表结构及实体类(数据表字段与bean属性完全对应) package com.itheima.domain; import java.io.Serializable; public class Account implements Serializable { private Integer id; private Integer uid; private ...

一起coding,一起嗨。 1566

mybatis-plus 实现一对多查询,返回VO对象某个字段为List

类关系 Animal类下包含一个List<Dog》,两表可用id和animalId字段关联。 @Data @TableName("animal") public class Animal { @TableId private String id; private Integer foot; private List<Dog> dogList; } @Data @TableName("dog") public class Dog { @TableId

wwyy2018的博客 7642

解决 MyBatis 一对多查询中,出现每组元素只有一个,总组数与元素数总数相等的问题

对于笔者的一对多的查询结果,出现了这样的一个现象:原来每个组里有多个元素,查询目标是查询所查的组,以及每个组中的元素。如果一个用户有 3 个好友,每组 4 个好友,则上述代码的查询结果会变成,该用户有 12 个好友分组,每个分组 1 个好友。MyBatis 对于多表查询,要求组元素的字段必须是基本类型,而笔者编程时非常喜欢隔离、封装、解耦,擅自在上面将组元素的字段封装成了一个单独的类,然后把这个类的对象作为组元素的字段。笔者之后在不断地建新的更基本的表,进行一对多查询,终于让笔者发现了问题所在。

暗诺星刻的博客 4583

mybatis plus多表连表查询

mybatis-plus-join gitee github 使用方法 安装 在项目中添加依赖 <dependency> <groupId>com.github.yulichang</groupId> <artifactId>mybatis-plus-join</artifactId> <version>1.1.6</version> </dependency> 或者clone代码到

qq_31116181的博客 8007

mybatis-plus一对多分页查询

mybatis-plus一对多分页查询 网上对一对多的total并没有详解,很多存在部分误导,所以这里做简单的实例 我的表分为 客户表 和客户家庭表 T_CUSTOMER_CLIENT ,T_CUSTOMER_CLIENTFAMILY 表联系为clientID 1.xml <!-- 根据条件查询内勤客户--> <select id="selectCcbClients...

qq_33396303的博客 4301
上一篇: easypoi实现表格导出(实现一对多,合并单元格)
下一篇: vue axios实现下载(兼容ie并实现取后台返回文件名)实例:easypoi导出excel vue axios接收
grootblockchain
博客等级 码龄11年 55粉丝 101原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值