mybatis 一对多 两种查询方式

华为防火墙USG6000系列多ISP上网(通过WEB界面设置) 华为防火墙多ISP上网,内网分区上网。内网多网段不同上网方式。 阅读详情

注意事项:  如果是多表 例如有A表,B表  A是多端,B是一端 那么就要在B端声明A端的集合 必须

上代码:

我使用的是java语言,先看实体类 这是单表的一对多 多表跟单表逻辑是一致

public class Menu extends PublicVo {
    private Integer id;
    private String name;
    private String path;
    private String component;
    private String icon;
    private Integer leaf;
    private Integer hidden;
    private String remark;
    private Integer fatherId;
    private Date menuDate;
    private List<Menu> children;
}

mybatis 查询的一对多的两种方式

第一种:多表联合查询sql

    <!--一对多查询单表 方式一-->
    <resultMap id="menuMap" type="com.example.hongxinwulian.pojo.Menu">
        <id property="id" column="id"></id>
        <!--配置menu对象中children集合的映射-->
        <collection property="children" ofType="com.example.hongxinwulian.pojo.Menu">
            <result property="fatherId" column="fatherId"></result>
            <result property="name" column="name"></result>
            <result property="path" column="path"></result>
            <result property="component" column="component"></result>
            <result property="icon" column="icon"></result>
            <result property="leaf" column="leaf"></result>
            <result property="hidden" column="hidden"></result>
            <result property="remark" column="remark"></result>
            <result property="menuDate" column="menuDate"></result>
        </collection>
    </resultMap>

    <select id="getMenuList" resultMap="menuMap,menuTotal">
        select SQL_CALC_FOUND_ROWS * from hongxin_menu as m left join hongxin_menu as m1
        on m.id = m1.fatherId where m.fatherId = 0 limit #{currentPage},#{pageSize}
    </select>

第二种:采用子查询方式

    <!--一对多查询单表 方式二-->
    <resultMap id="menuMap1" type="com.example.hongxinwulian.pojo.Menu">
        <id property="id" column="id"></id>
        <result property="fatherId" column="fatherId"></result>
        <result property="name" column="name"></result>
        <result property="path" column="path"></result>
        <result property="component" column="component"></result>
        <result property="icon" column="icon"></result>
        <result property="leaf" column="leaf"></result>
        <result property="hidden" column="hidden"></result>
        <result property="remark" column="remark"></result>
        <result property="menuDate" column="menuDate"></result>
        <!--配置menu对象中children集合的映射
         property="children" 是一端的声明的多段的结合
         ofType="com.example.hongxinwulian.pojo.Menu" //映射到集合中的pojo属性
         column="id" 是子查询用的参数
         select="getChildMenu" 调用子查询的方法名称
         -->
        <collection property="children"
                    ofType="com.example.hongxinwulian.pojo.Menu"
                    column="id"
                    javaType="ArrayList"
                    select="getChildMenu">
        </collection>
    </resultMap>
    <resultMap id="menuMap2" type="com.example.hongxinwulian.pojo.Menu">
        <id property="id" column="id"></id>
        <result property="fatherId" column="fatherId"></result>
        <result property="name" column="name"></result>
        <result property="path" column="path"></result>
        <result property="component" column="component"></result>
        <result property="icon" column="icon"></result>
        <result property="leaf" column="leaf"></result>
        <result property="hidden" column="hidden"></result>
        <result property="remark" column="remark"></result>
        <result property="menuDate" column="menuDate"></result>
    </resultMap>

    <!--主查询也就是dao层查询的如果-->
    <select id="getMenuList" resultMap="menuMap1">
      select * from hongxin_menu where fatherId = 0
    </select>
    <!--子查询-->
    <select id="getChildMenu" parameterType="java.lang.Integer" resultMap="menuMap2">
      select * from hongxin_menu where fatherId=#{id}
    </select>

代码段里加注释了 这里不多说了 比较基础的

看一下返回的数据 两种查询方式返回的数据都是一致:

 

【保姆级教程】基于UNet++&MobileNetv2的语义分割模型从训练到RK3588部署:让边缘AI落地效率提升300% 通过SMP库一键构建encoder_name="mobilenet_v2", # 选择MobileNetv2作为骨干encoder_weights="imagenet", # 加载预训练权重加速收敛in_channels=3, # 输入图像通道数(RGB)classes=29, # Cityscapes数据集类别数activation=None # 输出无激活,便于后续损失计算本教程从“模型设计-训练-转换-边缘部署”全链路拆解了。 阅读详情

相关推荐

SCG到ECG信号转换:Wave U-Net模型实现移动端心脏监测

心脏监测技术中,心电图(ECG)和心脏振动信号(SCG)是两种重要的生物信号。ECG记录心脏电活动,而SCG捕捉机械振动,两者通过电-机械耦合机制关联。Wave U-Net模型通过编码器-解码器结构和扩张卷积,实现了SCG到ECG的高精度转换,参数量减少90%以上。这一技术在移动设备上达到临床可用精度,未来可通过手机实现专业级心电图监测。应用场景包括睡眠呼吸暂停监测、心脏再同步化治疗评估等,为移动医疗带来革新。

weixin_35649491的博客 301

Mybatis 中经典的 9 种设计模式

虽然我们都知道有23个设计模式,但是大多停留在概念层面,真实开发中很少遇到。Mybatis源码中使用了大量的设计模式,阅读源码并观察设计模式在其中的应用,能够更深入的理解设计模式。 Mybatis至少遇到了以下的设计模式的使用: 1、Builder模式,例如SqlSessionFactoryBuilder、XMLConfigBuilder、XMLMapperBuilder、XMLStateme...

yamaxifeng_132的专栏 1558

网络安全学习路线是怎样的?

为什么要学习安全? 近几年网络安全事件层出不穷,相信大家哪怕没遇到过,但也听过不少了吧。如服务器遭受入侵被黑,用户帐号被盗;被钓鱼、勒索病毒等,这些一旦发生,对企业而言都是不小的打击。因此,网络安全不容忽视,同时随着时代的不断发展,公司对于运维及网络工程师要求也越来越严格。未来越来越吃香的一定是技能方向广的复合型人才。网络安全可以说是一条非常好的发展道路。 今年两会期间,全国政协委员,360集团创始人、董事长周鸿祎提交了关于网络安全行业特殊人才的提案,为广大白帽子人员争取更好...

网安技术分享 8697

MyBatis树结构查询(最后一级节点的children为空时不显示)

【代码】MyBatis树结构查询(最后一级节点的children为空时不显示)

weixin_39897001的博客 416

Canoe主要功能的详细介绍

CANoe是德国Vetor公司推出的一款用于总线开发的设备,全程为CAN open environment。后来随着总线技术的发展,CANoe不仅限于CAN类型的总线开发,还包含LIN、FlexRay、MOST和以太网等开发。在车载网络和ECU开发、测试和分析方面,CANoe几乎长期占据着垄断地位,当然是因为其强大的功能性了。目前用这个工具的主要是整车厂和供应商的网络设计工程是、开发工程师和测试工程师。小编当时安装CANoe的时候也是花了一定的时间和精力,好在没有崩溃。

车载测试 3722

动态刷新曲线_【GhPython应用】利用反射刷新Image sampler组件

【版权声明】| 作者:月之眼|案例图片来源:Sergiu Radu Pop的facebook| 如有侵权,请联系大水牛平台|如果觉得文章不错,欢迎分享效果展示利用python刷新Image sampler组件,主要的思路就是X输入端:输入要切换的图片路径,我的案例中输入了9张图片。然后通过100毫秒切换一张图片显示,来达到动态显示效果。代码分析run输入端类型:bool (I...

weixin_42393829的博客 531

mybatis学习-树形案例(三)

最终实现案例: [ { "id":1, "name":"技术部", "parentId":-1, "enabled":false, "children":[ { "id":2, "name":"需求组", "parentId":1, "enabled":false, ...

ytyDaMoTou的博客 919

爆肝整理:微信公众号文章HTML编写完整规范,运营必备手册

微信公众号文章排版总是出错?📱 这份完整的HTML编写规范文档帮你彻底解决!文档包含所有支持的标签、CSS属性、实用代码模板和注意事项 📋,让你快速掌握微信文章的HTML编写技巧,告别第三方编辑器依赖 ✅

XiaoqiangClub的博客 2303

mybatis的动态查询:if,where ,choose ,set,foreach,以及模糊查询的四种方法

<!-- 动态Sql--> <select id="selectSql" parameterType="com.zks.vo.Emp" resultType="com.zks.vo.Emp"> select <include refid="empColumn"></include> from emp <where> and <if test="job!=null"> job=#{job} .

aqzengkuasheng的博客 1336

RK3568 linux-5.10 rk809 声卡实现spk hp自动切换

RK3568 linux-5.10 rk809 声卡实现spk hp自动切换

目前从事linux驱动开发,多交流多学习吧 1095

【科研数据获取】根据Excel表个中的企业/公司信息批量获取经纬度坐标,并进行地图可视化

批量获取企业/公司的经纬度坐标,并进行地图可视化1 需求2 实现途径3 需求逐步实现 1 需求 在做项目的时候,老板或者项目答辩时候甲方最喜欢看到的就是可视化结果,尤其是涉及到地图可视化。很多时候会遇到企业/公司的数据,想要做地图可视化,必不可少的就是要获取它们具体地址:第一种就是像查户口一样精准一下具体的城镇街道,还有一种就是经纬度信息,前一种属于文字内容往往用于管理方面,第二种数字信息多用于数据处理与分析。 2 实现途径 获取地理信息数据,自然需要使用到地图的功能,这里直接采用百度地图的拾取坐标系统,

lys_828的博客 2336

MyBatis 实现一对多有几种方式,怎么操作的?

根据具体业务需求和数据结构的复杂度,选择合适的方式来实现一对多的关联查询。

NZC2237的博客 1821

【雷达】一维和二维自适应波束形成(DBF))DBF附matlab代码

1 简介 数字波束形成技术是天线波束形成原理与数字信号处理技术相结合的产物,其广泛应用于阵列信号处理领域.由于电磁工作环境的恶化和大量射频干扰的存在,在极低的信干噪比(SINR)条件下进行目标检测和信息提取十分困难.对于阵列系统,往往采用自适应数字波束形成(ADBF)技术,来抑制强干扰和方向性干扰对有用信号的影响.介绍了数字波束形成器的基本原理及其DSP的实现结构.​ 2 完整代码 clc;clear all;close all;%%%%%%%%%%%%%%%%%一维DBF%%%%%%%%%%%%%

qq_59747472的博客 7265

【mybatis】关联查询——mybatis一对多两种方式实现详解

此种方式需要查询数据库两次,发出两次sql语句,一次是查询tbl_phone表,一次是查询tbl_person表,但是数据库返回的信息没有冗余,mapper.xml配置和测试代码如下。 &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0...

leexiehui的博客 8322

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

mybatis一对多两种查询方式

平时在开发过程中dao、bean和XML文件都是自动生成的,很少写XML的配置关系,今天记录一下mybatis的关联查询中的多对一和一对多的情况。 首先是有两张表(学生表Student和老师Teacher表),为了更易懂,这里只设置了最简单的几个必要字段。表结构如下图 Student表: Teacher表: 创建实体bean Teacher.java: import java.ut...

gaston的博客 384

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

mybatis一对多的查询的两种方式

mybatis 一对多查询

snowwithrain的博客 2517

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

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

mybatis一对多关联 创建_【mybatis】关联查询——mybatis一对多两种方式实现详解...

此种方式需要查询数据库两次,发出两次sql语句,一次是查询tbl_phone表,一次是查询tbl_person表,但是数据库返回的信息没有冗余,mapper.xml配置和测试代码如下。/p>PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">select * f...

weixin_39523529的博客 174

mybatis一对多联表查询的两种常见方式

1.嵌套结果查询(部分代码如下) sql语句接上: 注释:class表(c别名),student表teacher(t别名)teacher_id为class表的字段t_id为teacher表的字段,因为两者有主键关联的原因,c_id为class表的字段。根据c_id查询。_classes为classes实体类(既是表class对应的实体类)前两个propert...

weixin_30547797的博客 174

MyBatis如何实现多表查询(一对一、一对多)

MyBatis如何实现多表查询(一对一、一对多)

weixin_68286174的博客 8910

Mybatis基于xml的一对一、一对多、多对多嵌套结果查询和嵌套查询

mabatis 基于xml的一对一,一对多,多对多

qq_41615095的博客 6699

mybatis实现多表一对一,一对多,多对多关联查询

1、一对一 关键字:association 作用:针对pojo对象属性的映射       property:pojo的属性名       javaType:pojo类名 (1) 嵌套结果: 使用嵌套结果映射来处理重复的联合结果的子集 <!-- 1、构造器注入 -->

Adamlawen的博客 3万+

Mybatis多表查询分析+示例(一对多、多对多)

在日常是使用数据库的场景中,经常会存在多表查询。举个例子:每个人可以拥有多个银行卡(一对多)、每张银行卡只会对应一个用户(一对一)、每个人可能拥有多个不同的社会角色,每一个不同的社会角色也会对应不同的人(多对多),Mybatis作为大名鼎鼎的SSM的组成部分之一,掌握其多表查询的方法至关重要,幸运的是,一旦我们可以准确写出对应的sql语句,mybatis的配置将会变得非常简单。 1 Mybatis一对多查询 这里用一个例子来演示说明一对多查询,【老规矩,代码在文末】。用户为User 表,账户为Ac.

如切如磋,如琢如磨 999

MyBatis关联查询实战:一对一与一对多详细解析

MyBatis是一款强大的持久层框架,提供了多种方式来处理关联查询,其中包括一对一和一对多的情况。在本文中,我们将深入探讨这两种关联查询的实现方式,并通过具体的示例代码进行详细解释。

IT小辉同学 2767

MyBatis实现多表查询

MyBatis实现多表查询 一、多对一查询 数据库的准备 创建两张表,一张老师表,一张学生表 将老师主键id关联学生外键tid 创建sql的语句 create table teacher( id int primary key, teacher_name varchar(30) not null ) insert into teacher(id,teacher_name) values (1,'毛老师') create table student( id int primary key

Mq_sir的博客 1万+

MyBatis---- Mybatis 多表查询之一对多

上一篇????:MyBatis---- Mybatis 映射文件的SQL深入 文章目录1、表之间的分析2、完成account表的建立及实现单表查询3、完成account的一对一操作-通过写account的子类方式查询4 、完成account的一对一操作-建立实体类关系的方式5、完成User表的一对多查询操作 ????大家好!我是近视的脚踏实地,这篇文章主要来学习Mybatis 多表查询之一对多      唯有行动  才能解除你所有的不安 1、表之间

Monster丶ZF的博客 483

Mybaits之多表查询(联合查询、嵌套查询)

Mybatis之多表联合查询以及案例【通俗易懂】 内涵联合查询方式以及嵌套查询方式

PIKapikaaaa的博客 2834
上一篇: vue button按钮绑定回车登录事件
下一篇: Vue el-input 使用伪元素插入间隔符
叫我阿龙啊
博客等级 码龄11年 179粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值