Mybatis多表查询

MyBatis-多表查询-一对一查询(方式一)

在这里插入图片描述

在这里插入图片描述

一个菜品对应一个分类

直接菜品记录category对象

在这里插入图片描述
菜品id写入Dish,后面的分类直接写入 Category类

封装,如果sql不能封装上,那么直接使用resultmap封装

在这里插入图片描述使用resultType只能封装基本属性

所以要定义一个resultmap手动封装

使用标签

要有id

使用resultmap 进行 一对一的封装

MyBatis-多表查询-一对一查询(方式二)

使用别名 : 别名就是类名的简写 首字母写法都可以 不区分大小写

当在peoperties中配置别名之后,直接写别名就可以

总结

Mybatis的多表查询 1对1

首先 1对1查询 ,
首先在pojo实体类中先声明出另一个对象的属性

在这里插入图片描述
因为是1对1查询

然后按照mybatis的三步约定
第一 同包同名 mapper接口要与mapper.xml所在的包的路径要相同 ,并且名字要一样
第二个 mapper.xml的namespace的地址要写 mappe的全类名
第三个mapper.xml的id要与mapper的方法名要一致

在这里插入图片描述
java是与resource是同一级的

都在main的下面

main的下面只有 java与resource

mybatis的使用

mybatis的使用首先要配置数据库的参数

在这里插入图片描述
mybatis的驼峰映射也要开启,不用设计参数名了
在这里插入图片描述

然后进行sql的书写

在这里插入图片描述

这个是多表的查询所以,在一个resultmap中是查询的引用对象

resulttype是查询的简单数据
在这里插入图片描述

使用resultMap

<resultMap id="dishMap1" type="dish"><id column="id" property="id"></id><result column="name" property="name"></result><result column="category_id" property="categoryId"></result><result column="price" property="price"></result><result column="image" property="image"></result><result column="description" property="description"></result><result column="status" property="status"></result><result column="create_time" property="createTime"></result><result column="update_time" property="updateTime"></result><result column="cid" property="category.id"></result><result column="cname" property="category.name"></result><result column="ctype" property="category.type"></result><result column="csort" property="category.sort"></result><result column="cstatus" property="category.status"></result><result column="ccreate_time" property="category.createTime"></result><result column="cupdate_time" property="category.updateTime"></result></resultMap>

这是第一种方式,
直接列对应属性,

第二种方式使用association

<resultMap id="dishMap2" type="Dish"><id column="id" property="id"></id><result column="name" property="name"></result><result column="category_id" property="categoryId"></result><result column="price" property="price"></result><result column="image" property="image"></result><result column="description" property="description"></result><result column="status" property="status"></result><result column="create_time" property="createTime"></result><result column="update_time" property="updateTime"></result><association property="category" javaType="com.healer.pojo.Category"><id column="cid" property="id"></id><result column="cname" property="name"></result><result column="ctype" property="type"></result><result column="csort" property="sort"></result><result column="cstatus" property="status"></result><result column="ccreate_time" property="createTime"></result><result column="cupdate_time" property="updateTime"></result></association></resultMap>
<!--    查询菜品,同时查询出菜品所示的分类-->
<select id="findAlldishWithCategory" resultMap="dishMap2">select d.*,c.id          cid,c.name        cname,c.type        ctype,c.sort        csort,c.status      cstatus,c.create_time ccreate_time,c.update_time cupdate_timefrom dish dleft join category c on d.category_id = c.id;
</select>

列对应着属性

如果想要简写,可以使用

#指定Mybatis的实体目录
mybatis.type-aliases-package=com.healer.pojo

在这里插入图片描述然后就可以写别名

在association中
使用javaType

在这里插入图片描述

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

在这里插入图片描述

查询的数据往分类里面封装

既然一个分类里面的基本信息不能满足需求了

使用集合 在pojo中定义一个集合

在这里插入图片描述

多对多的查询

在这里插入图片描述

保持原则

查询的数据要往哪个表中去封装

总结

不用记什么多对多,一对多 ,一对一

只需要记住使用resultmap

什么什么封装的

下面id写

然后其他的使用result

遇到对象了使用association , javaType

遇到集合了使用collection , ofType

Mybatis完结撒花

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/19070.shtml

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

相关文章

Python数据处理,使用 tkinter 模块点击获取文件目录

Python数据处理&#xff0c;使用 tkinter 模块点击获取文件目录 正文 正文 当我们进行数据处理读取文件内数据的时候&#xff0c;通常&#xff0c;我们需要设定好一个存放当前文件所在目录的变量。比如如下目录&#xff1a; file_path rC:\Users\xxx\Desktop\DataSet\Data.c…

【车载开发系列】Vector工具链的安装

【车载开发系列】Vector工具链的安装 【车载开发系列】Vector工具链的安装 【车载开发系列】Vector工具链的安装一. VectorDriver二. DaVinci_Developer三. DaVinci Configurator 一. VectorDriver Vector Driver Setup是Vector产品链中重要的驱动软件,所有的硬件设备进行连接…

mvc的常见注解

问文心一言的&#xff0c;记录一下。 PathVariable 路径变量注解 PathVariable 是 Spring MVC 提供的一个注解&#xff0c;它用于从 URI 模板变量中绑定值到控制器方法的参数上。当你在 RequestMapping、GetMapping、PostMapping、PutMapping、DeleteMapping 等注解的 URL 路…

写Python时不用import,你会遭遇什么

from *** import *** 想必你已经再熟悉不过这样的python语法。 当你的 python 代码需要获取外部的一些功能&#xff08;一些已经造好的轮子&#xff09;&#xff0c;你就需要使用到 import 这个声明关键字。import可以协助导入其他 module 。&#xff08;类似 C 预约的 inclu…

信号处理中简单实用的方法

最小二乘法拟合消除趋势项 消除趋势项函数 在MATLAB的工具箱中已有消除线性趋势项的detrend函数&#xff1b;再介绍以最小二乘法拟合消除趋势项的polydetrend 函数。 函数:detrend功能:消除线性趋势项 调用格式:ydetrend(x) 说明:输入参数x是带有线性趋势项的信号序列,输出…

【408真题】2009-28

“接”是针对题目进行必要的分析&#xff0c;比较简略&#xff1b; “化”是对题目中所涉及到的知识点进行详细解释&#xff1b; “发”是对此题型的解题套路总结&#xff0c;并结合历年真题或者典型例题进行运用。 涉及到的知识全部来源于王道各科教材&#xff08;2025版&…

遇到软件测试职业瓶颈,如何突破

作为职场人&#xff0c;遇到发展瓶颈是在所难免的&#xff0c;无论是晋升受限、技能升级缓慢&#xff0c;还是工作激情的丢失&#xff0c;这些挑战都可能让人感到挫败。但是&#xff0c;积极应对&#xff0c;你就可能找到那扇通向新机遇的窗。 1. 自我评估 识别问题 是缺乏技能…

2024年四川省三支一扶报名流程图解✅

2024年四川省三支一扶报名流程图解✅ &#x1f534;时间安排 1、报名时间&#xff1a;5月31日—6月4日17:00 2、资格初审时间&#xff1a;5月31日—6月5日17:00 3、准考证打印时间&#xff1a;6月25日—6月29日 4、笔试时间&#xff1a;6月30日 5、笔试成绩&#xff1a;7…

电脑显示由于找不到msvcr110.dll 无法继续执行如何处理?最简单的修复msvcr110.dll文件方法

电脑显示由于找不到msvcr110.dll 无法继续执行&#xff1f;当你看到这种提示的时候&#xff0c;请不要紧张&#xff0c;这种是属于dll文件丢失&#xff0c;解决起来还是比较简单的&#xff0c;下面会详细的列明多种找不到msvcr110.dll的解决方法。 一.找不到msvcr110.dll是怎么…

【credit_based流控机制】

credit_based流控机制 1 credit_based way1.1 Principle1.3 DFD1.4 Module1.4.1 Interface1.4.2 Code Block 在网络芯片处理大流量报文中&#xff0c;一般主要是两种机制&#xff1a;1.valid–ready反压(backpressure)机制&#xff1b;2.credit信用机制&#xff1b; credit机制…

idea、datagrip注册记录下

一、DataGrip注册 DataGrip版本号&#xff1a;DataGrip 2023.2 访问地址&#xff1a;https://3.jetbra.in/ 点击“hardbin.com”&#xff0c;下载“jetbra.zip” 在vm里面添加上&#xff1a; -javaagent:D:\work\idea\jetbra\ja-netfilter.jarjetbrains重启datagrip 在刚刚…

英飞凌24GHz毫米波雷达-BGT24LTR11N16家用机器人应用

BGT24LTR11N16基础描述&#xff1a; 关于BGT24LTR11N16&#xff0c;它是一款用于信号生成和接收的硅锗雷达MMlC&#xff0c;工作频率为24.00GHz至24.25GHz ISM频段。它基于24GHz基本电压控制振荡器&#xff08;VCO&#xff09;。 这颗芯片是属于1T1R&#xff0c;也就是一发一收…

真实机安装完Centos7没有网卡驱动,ifconfig后,只有lo

文章目录 前言一、1查看网卡型号2 下载相应的驱动程序3、参考官方说明 二、总结 前言 参考1 参考2](https://blog.csdn.net/weixin_46945904/article/details/136365222?spm1001.2101.3001.6650.2&utm_mediumdistribute.pc_relevant.none-task-blog-2defaultYuanLiJiHuaP…

检索字符串

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 在Python中&#xff0c;字符串对象提供了很多应用于字符串查找的方法&#xff0c;这里主要介绍以下几种方法。 &#xff08;1&#xff09;count()方…

【busybox记录】【shell指令】rmdir

目录 内容来源&#xff1a; 【GUN】【rmdir】指令介绍 【busybox】【rmdir】指令介绍 【linux】【rmdir】指令介绍 使用示例&#xff1a; 删除空目录 - 默认 删除dirname下的所有空目录&#xff0c;包括因删除其他目录而变为空的目录 常用组合指令&#xff1a; 指令不…

多激光雷达ip与端口配置

首先是雷达的ip 我们连上雷达&#xff0c;想要进入雷达的上位机的时候&#xff0c;需要对本机ip进行一些配置&#xff1a; 第一个是ip&#xff0c;第二个是掩码&#xff0c;第三个是网关。 其中ip可以通过wireshark来进行读取&#xff0c;一般就是192.168.102(雷达默认) 然后掩…

自定义数据集上的3D目标检测:使用OpenPCDet训练CenterPointPillar模型

前言 在自动驾驶和机器人领域&#xff0c;3D目标检测是关键技术之一。它能够提供关于周围环境中物体的精确位置和尺寸信息。OpenPCDet是一个基于PyTorch的开源3D目标检测框架&#xff0c;支持多种3D检测网络。在本文中&#xff0c;我们将探讨如何使用OpenPCDet框架和CenterPoi…

树莓派4B 学习笔记1:TF卡系统盘烧录_初次启动_远程端连接配置

今日开始学习树莓派4B 4G&#xff1a;&#xff08;Raspberry Pi&#xff0c;简称RPi或RasPi&#xff09; TF卡系统盘烧录_初次启动_远程端连接配置 目录 格式化SD卡&#xff1a; 烧录系统Win32DiskImager&#xff1a; Raspberry Pi Imager镜像烧写&#xff1a; 树莓派官网资料…

合约之间调用-如何实现函数静态调用?

合约之间的函数调用 EOA&#xff0c;external owned account&#xff0c;外部账号&#xff0c;例如metamask调用最终总是由EOA发起的合约之间的调用使得一次完整的调用成为一个调用链条 合约间调用过程 调用者须持有被调用合约的地址得到被调用合约的信息将地址重载为被调用合…

使用swagger2做测试,报java.lang.NumberFormatException: For input string: ““ 的异常

文章目录 一、问题描述二、原因分析三、解决方案3.1、方案一&#xff1a;手动添加example值&#xff08;费时费力不推荐&#xff09;3.2、方案二&#xff1a;导入1.5.21(及之后)版本的swagger-models&#xff08;推荐&#xff09; 本文基于swagger2.9.2进行讲解 <!--swagge…