mybatis联合查询 一对一一对多

mybatis关联查询问题(一对多、多对一) mybatis关联查询问题(一对多、多对一) 博客系统源码 立即下载

分析商品订单数据模型

通过订单表和用户表分析商品订单数据模型

在这里插入图片描述

准备工作

用户表
– auto-generated definition
create table user
(
id int auto_increment
primary key,
username varchar(32) not null comment ‘用户名称’,
birthday date null comment ‘生日’,
sex char null comment ‘性别’,
address varchar(256) null comment ‘地址’
);

订单表

-- auto-generated definition
create table orders
(
  id         int auto_increment
    primary key,
  user_id    int          not null comment '下单用户id',
  number     varchar(32)  not null comment '订单号',
  createtime datetime     not null comment '创建订单时间',
  note       varchar(100) null comment '备注',
  constraint FK_orders_id
    foreign key (user_id) references user (id)
);

create index FK_orders_1
  on orders (user_id);

项目结构
订单类和 用户类根据上述
在这里插入图片描述

一对一

sql
在这里插入图片描述

方式一:使用resultType实现

(a)改造POJO:目前已经拥有的实体,没有一个能够映射所有的字段,需要重新创建一个POJO类

     创建一个类,继承字段多的POJO类
     
     User_orders

(b)OrdersMapper接口

在这里插入图片描述

(c)OrdersMapper.xml

在这里插入图片描述

(d)在resource文件夹中修改核心配置文件完成映射

方式二:使用resultMap实现

(a)改造POJO

在这里插入图片描述
(b)Mapper接口
在这里插入图片描述

(c)Mapper.xml
在这里插入图片描述

总结:
实现一对一查询
ResultType:
使用resultType比较简单,如果没有对应POJO,就创建一个对应POJO即可。
如果,查询结果没有特殊性的要求,就建议使用ResultType
ResultMap:
需要单独定义ResultMap,实现有些麻烦,
如果 对查询的结果有特殊要求(指定结果)使用ResultMap,将关联查询的结果映射到POJO的属性中。

ResultMap可以实现延迟加载,ResultType无法实现延迟加载。
Order对象(顶层)包含User对象(第二层),如果暂未没有用到User属性,就不查询User的信息。

一对多

一对多的关系,只能用ResultMap实现,无法使用resultType实现。

SQL

在这里插入图片描述

修改POJO

在这里插入图片描述

Mapper接口

在这里插入图片描述

Mapper.xml

在这里插入图片描述

**

总结

**
Mybatis使用resultMap的collection对关联插入的多条记录映射到一个List集合属性中。
如果使用ResultType实现:只能自己手动处理数据,需要使用双层循环遍历,合并记录。

多对多

多对多的关系,需要借助第三表来存储这个关系,无论是添加、还是删除、查询,本质都是对第三张表进行的操作。

     商品和订单的关系
     用户和角色的关系
     用户和权限的关系
Mybatis 一对多关联查询(两种方法) NULL 博文链接:https://qihaibo1989.iteye.com/blog/2354597 立即下载

相关推荐

模拟IC版图DRC实战:手把手教你搞定MIM电容天线错误和ESD.10g违例

本文深入解析模拟IC版图中的MIM电容天线错误和ESD.10g违例问题,提供从错误解码到实战修复的完整指南。通过电路图修改、版图优化和验证闭环等步骤,帮助工程师高效解决DRC错误,特别适用于ADC等精密模拟电路设计。文章还分享了高级排错技巧和预防性设计策略,大幅提升流片成功率。

weixin_27697385的博客 295

Mybatis多表关联查询(一对多关联查询)

Mybatis多表关联查询(一对多关联查询)

qq_58258855的博客 1万+

多个MOS管并联应用场景的四大要点

动态运行时,阈值电压Vgsth最低的MOS管首先打开,最后关闭。这种MOS管一般会占据更多的开关损耗,并且在开关转换过程中,承担了更高的电应力。

VBsemi的博客 3748

mybatis 一对多级联查询的4种方式

大家都知道mybatis的一对多关联查询collection有两种方式。 第一种,嵌套resultMap: <resultMap id="DictionaryResultMap" type="com.xxx.darwin.model.DictionaryQueryModel" > <id column="id" jdbcType="BIGINT" property="id...

qq_41913879的博客 2589

《第二十二篇》Cross-Attention:注意力机制详解-代码实现和公式详解《二》

本文详细介绍了Cross-Attention的原理、公式和实现。Cross-Attention用于Transformer解码器和Encoder-Decoder结构,通过查询向量(Q)与键、值向量(K、V)的交互实现序列对齐。核心公式为softmax(QK^T/√d_k)V,其中Q来自Decoder,K、V来自Encoder。文章还给出了多头注意力机制公式和PyTorch实现代码,包括投影计算、注意力分数计算和输出处理。代码示例展示了如何构建一个完整的Cross-Attention模块,并演示了其在解码器查询

guoguozgw的博客 2210

【AVRCP】规范精讲[19]: 媒体属性全解析,让你的蓝牙设备显示完整歌曲信息

AVRCP协议中的媒体属性是蓝牙音频设备传输歌曲元数据的关键,包含标题、艺术家、专辑等32位ID标识的键值对信息。规范要求字符串属性必须使用UTF-8编码,但乱码问题频发(如中文显示异常),主因是设备未遵循编码标准或使用GBK等非规范格式。常见问题包括信息不全(仅显示标题)、封面缺失(因带宽限制或格式不支持)及更新延迟(通知机制未启用)。解决方案包括强制UTF-8编码、优化封面大小(如300x300像素JPEG)、主动请求缺失属性。Android示例代码展示了通过广播接收器解析媒体属性的方法。

byte轻骑兵的技术小窝 1万+

Mybatis中如何实现一对一,一对多的关联查询?

MyBatis实现一对一、一对多关联查询的方式

m0_67942533的博客 1万+

SAP UI5 OData V4 操作结果访问:从 getObject 到返回值上下文与 $$inheritExpandSelect

SAP UI5 OData V4 操作结果获取指南 摘要:在 SAP UI5 OData V4 模型中,操作结果需通过绑定上下文获取而非直接从 invoke() 返回。本文详解核心要点: 数据获取路径 使用 invoke() 发起请求后,通过 getBoundContext().getObject() 获取结果 特定场景下 invoke() 可能返回返回值上下文(如草稿切换) 关键实践技巧 使用 $$inheritExpandSelect 继承字段选择,避免二次读取 对象页应用中,通过替换绑定上下文实现无缝

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 312

Mybatis实现多表查询(一对多 、多对一)

TeacherMapper.xml (一对多)StudentMapper.xml(多对一)

wwwdffdsdsf的博客 1988

验证码破解2.0:Python+CV大模型搞定滑块/点选验证

核心创新:基于YOLOv8+SAM CV大模型的端到端验证码破解方案,无需人工设计特征,适配多种验证码类型;核心价值高成功率:滑块验证≥95%,点选验证≥90%,远超传统CV方案;低延迟:单验证码破解≤2秒,满足高并发采集需求;行为模拟:生成符合人类操作的轨迹,绕过行为检测;易扩展:统一架构支持新增验证码类型,仅需少量标注数据微调;技术要点采用YOLOv8实现快速目标检测,SAM实现像素级分割;生成物理规律的人类轨迹,模拟真实操作行为;

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1261

openlayers全面教程306+【目录】

vue+openlayers系列教程旨在为开发者提供简单快捷的示例。在每一个示例中,解释相应的API知识点。

大剑师兰特的GIS世界 2万+

mybatis一对多关联查询两种方式

mybatis一对多关联查询两种方式前提:方式一:方式二: 前提: 现在有两张表,学生表跟教师表,一个教师对应多个学生 教师表: CREATE TABLE `teacher` ( `id` int(11) PRIMARY KEY, `name` varchar(20) , `age` int(11) , `address` varchar(100) , PRIMARY KEY...

shushan452的博客 2万+

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Mybatis多表联合查询的应用(一对一,一对多)

Mybatis多表联合查询的应用(一对一,一对多)

weixin_44899752的博客 1132

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Mybatis---多表联合查询(1)

Mybatis---多表联合查询(1)前言测试准备一、一对一新建方法添加关联测试二、一对多新建实体类添加方法添加关联测试 前言 在开发过程中单表查询不能满足项目需求分析功能,对于复杂业务来讲,关联的表有几张,甚至几十张并且表与表之间的关系相当复杂。为了能够实业复杂功能业务,就必须进行多表查询,在mybatis中提供了多表查询的结果时映射标签,可以实现表之间的一对一、一对多、多对多关系映射 测试准备 案例所需数据库脚本 SET FOREIGN_KEY_CHECKS=0; -- -----------

weixin_46816383的博客 6657

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

MyBatis实现关联表查询(一对一,一对多,联合查询,嵌套查询)

转自:MyBatis学习总结(五)——实现关联表查询 myBatis  实现一对一有几种方式?具体怎么操作的? 有联合查询和嵌套查询: 联合查询是几个表联合查询,只查询一次,通过在 resultMap里面配置 association 节点配置一 对一的类就可以完成; 嵌套查询是先查一个表,根据这个表里面的结果的外键id,去再另外一个表里面查询数据,也是 通过 association 配

warship_f的博客 1489

Mybatis多表联合查询,嵌套查询,动态SQL

Mybatis多表联合查询,嵌套查询,动态SQL Mybatis多表联合查询 一对一 一对一查询:通过一方关联查询出另外一方的关系数据 创建数据库和相关数据表 创建需要关联查询的实体类,里面包含相关的属性 //丈夫查妻子 public class Husband { private Integer id; private String name; private Wife wife; } public class Wife { private

debugEDM的博客 9374

Mybatis实现一对一查询和一对多查询

Mybatis中实现一对一多表联合查询与一对多多表联合查询。 举例:以用户和商品订单为例: 一个商品订单应该对应一个用户,而一个用户可以有多个商品订单,此时需要在用户的实体类中添加商品订单的List,同时在商品订单中添加用户User,实体类创建如下: User类: package com.w.pojo; import java.io.Serializable; import java....

wb785074651的博客 545

mysql 多表联合查询_一对一多表联合查询

前面我们知道了 一张表的增删改查,实际上增删改操作一般就是在一张表上经行,但是查询就不一样了,我们在学习数据库的时候一定学习了多表联合查询,那么使用MyBatis如何实现多表联合查询呢?这里我们先来介绍一对一多表联合查询,之后是一对多多表联合查询,最后是多对多多表联合查询。这里只是依靠简单的语言叙述,想要说清楚我做不到,所以还是以一个例子来进行说明。我们就来看,像俱乐部和会员的关系,身份...

weixin_39732640的博客 855

ruoyi 对表查询(一对一,一对多)

Mapper.XML <!--联合查询用到的map--> <resultMap type="LmbBirdCollect" id="LmbBirdCollectResult2"> <id property="collectId" column="collect_id" /> <result property="pointId" column="point_id" /> <re

LvManBa的博客 5950

Mybatis 是否支持延迟加载?如果支持,它的实现原理是 什么?

MyBatis 实现一对一有几种方式?具体怎么操作的? 有联合查询和嵌套查询 联合查询是几个表联合查询,只查询一次, 通过在resultMap 里面配置 association 节点配置一对一的类就可以完成; 嵌套查询是先查一个表,根据这个表里面的结果的 外键 id,去再另外一个表里面查询数据,也是通过 association 配置,但另外一个表的查询通过 select 属性配置。 <mapper namespace="com.lcb.mapping.userMapper"> <!--as

G_whang的博客 4453

Java框架_Mybatis_day06_多表关联之一对一、一对多查询

目录 十、Mybatis 多表关联查询之一对多关系 10.1 创建账户表,添加数据 10.2 查询所有账户 10.3 一对一查询,查询账号同时关联用户(方案一) 10.4一对一查询,查询账号同时关联用户(方案二) 10.5 一对多查询,查询用户同时查询账号的集合 十、Mybatis 多表关联查询之一对多关系 10.1 创建账户表,添加数据 create table `acc...

cpz 312

Mybatis多表查询

目录 ResultMap实现复杂映射 多对一 联合查询 分表查询 一对多 联合查询 分表查询 一对一 联合查询 分表查询 多对多 联合查询 分表查询 ResultMap实现复杂映射 多对一 1. E-R图 2. 创建表 CREATE TABLE department( d_id INT NOT NULL AUTO_INCREMENT, d_name VARCHAR(100), PRIMARY KEY(d_id) ); CREATE TA

qq_41028544的博客 499

MyBatis框架——关系映射(一对多、多对多、多对一查询)

关系映射 一、映射(多)对一、(一)对一的关联关系 1).使用列的别名 ①.若不关联数据表,则可以得到关联对象的id属性 ②.若还希望得到关联对象的其它属性。则必须关联其它的数据表 1.创建表: 员工表: DROP TABLE IF EXISTS `tbl_employee`; CREATE TABLE `tbl_employee` ( `...

BOLI110011的博客 451

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里面使用一对一、一对多、多表联合查询(类似视图)操作的例子。   注:阅读本文前请先大概看一下之前两篇文章。   一、表结构   班级表class,学生表student,班级学生关系表ClassStudent。   这里一个学生只会在一个班级里面,也就是一对一的关系;一个班级有多个学生,也就是一对多的关系。   结构如下:CREATETABLE[d

李学文的博客 1172
上一篇: mybatis输入映射和输出映射
下一篇: mybatis查询缓存
不再简简单单
博客等级 码龄8年 21粉丝 76原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值