多对一映射、一对多映射

Emp员工表  Dept部门表

多对一映射
在查询时,需要获取两张以上关联表的数据,通过关联映射,可以由一个对象获取关联对象的信息,例如:查询一个Emp员工对象,可以
通过关联映射获取员工所在的部门Dept对象信息

MyBatis多对一有以下两种不同的实现形式: 需要在Emp实体类中添加一个属性   private Dept dept;  因为 是多对一,通过Emp表 也能查到Dept表的数据,查到的是一个Dept对象
1.嵌套查询:通过执行另外一个SQL映射语句来返回关联数据结果(需要查询两次)
2.嵌套结果查询:执行一个表关联查询SQL,然后将查询结果映射成关联对象(需要查询一次)

方法1

<!-- 嵌套查询,查询员工时,关联查询出对应的部门信息 --><select id="findEmpAndDeptByEmpnoOne" parameterType="java.lang.Integer" resultMap="empMapOne">select * from emp where empno=#{empno}    </select><resultMap type="com.xms.entity.Emp" id="empMapOne"><association property="dept" column="deptno" javaType="com.xms.entity.Dept" select="findByDeptno"/></resultMap><select id="findByDeptno" resultType="com.xms.entity.Dept" parameterType="java.lang.Integer">select * from dept where deptno=#{deptno}</select>

方法2

<!-- 嵌套结果查询,查询员工时,关联查询出对应的部门信息 ,与数据库交互一次--><select id="findEmpAndDeptByEmpnoOneTwo" parameterType="integer" resultMap="empMapTwo" >select * from emp e inner join dept d on e.deptno=d.deptno where e.empno=#{empno}</select><resultMap type="com.xms.entity.Emp" id="empMapTwo"><id property="empno" column="empno"/><result property="ename" column="ename"/><result property="salary" column="salary"/><result property="bonus" column="bonus"/><result property="hiredate" column="hiredate"/><result property="deptno" column="deptno"/><association property="dept" column="deptno" javaType="com.xms.entity.Dept"><id property="deptno" column="deptno"/><result property="dname" column="dname"/></association></resultMap>

 

一对多映射
当查询某个表的记录信息时,如果关联表有多条相关记录,此时,就可以通过一对多映射,例如:查询某个Dept部门对象信息,
通过一对多映射获取此部门所有的Emp员工对象信息

MyBatis的一对多有以下两种不同的实现形式       需要在Dept实体类中添加一个属性   private List<Emp> dept;  因为 是一对多,通过Dept表 也能查到Emp表的数据,查到的是一个Emp对象的集合
1.嵌套查询:通过执行另外一个SQL映射语句来返回关联数据结果(需要查询两次)
2.嵌套结果查询:执行一个表关联查询SQL,然后将查询结果映射成关联对象(需要查询一次)

嵌套查询

<!-- 嵌套查询,查询部门信息,同时查询部门中员工信息 ,与数据库交互2次--><select id="findByDeptOne" parameterType="integer" resultMap="deptMapOne">select * from dept where deptno=#{deptno}</select><resultMap type="com.xms.entity.Dept" id="deptMapOne"><id property="deptno" column="deptno"/><collection property="emps" javaType="java.util.ArrayList" ofType="com.xms.entity.Emp" column="deptno" select="findEmps" /></resultMap><select id="findEmps" resultType="com.xms.entity.Emp" parameterType="java.lang.Integer">select * from emp where deptno=#{deptno}</select> 

嵌套结果查询

<!-- 嵌套结果查询,查询部门信息,同时查询部门中员工信息 ,与数据库交互一次--><select id="findByDeptnoTwo" parameterType="integer" resultMap="deptMapTwo">select d.*,e.* from dept d inner join emp e on d.deptno=e.deptno where d.deptno=#{deptno}</select><resultMap type="com.xms.entity.Dept" id="deptMapTwo"><id property="deptno" column="deptno"/><result property="dname" column="dname"/><collection property="emps" column="deptno" javaType="java.util.ArrayList" ofType="com.xms.entity.Emp"><id property="empno" column="empno"/><result property="ename" column="ename"/><result property="salary" column="salary"/><result property="bonus" column="bonus"/><result property="hiredate" column="hiredate"/><result property="deptno" column="deptno"/></collection></resultMap>

 

转载于:https://www.cnblogs.com/yingyigongzi/p/9300531.html

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

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

相关文章

一道面试题目引发的思考

起因 多列布局是前端一个经典的反复被提及的面试题目&#xff0c;最典型的即两列&#xff0c;左列定宽菜单栏&#xff0c;右列变宽为内容区域。 通常得到的答案无外乎左列浮动定宽&#xff0c;然后右列或浮动&#xff0c;或设置外边距&#xff0c;或绝对定位等等。偶尔会有面试…

uniapp弹出框_uniApp上拉刷新,下拉加载,以及筛选功能

uniApp插件市场有很多友好的插件&#xff0c;今天举一个例子如上图所示&#xff0c;实现上拉刷新&#xff0c;下来加载&#xff0c;右上角点击弹出筛选框&#xff0c;只需要在插件市场搜索刷新选择你想要的效果(也可以下载后自己改动效果)点击导入插件&#xff0c;会自动打开项…

乐高无限的服务器怎么建,乐高无限悬空房子怎么建造 建造方法介绍

乐高无限悬空房子怎么建造?很多玩家对此还不是很清楚&#xff0c;下面给大家带来乐高无限悬空房子建造方法&#xff0c;还不知道怎么建造的朋友一起来看看吧!建造方法悬空房子非常容易搭建&#xff0c;如果我们想要将已经搭建的房子悬空&#xff0c;就只需要将建筑下方的土地挖…

Hibernate学习(一)

搭建环境 1、创建普通的Java工程 2、添加相应的jar包&#xff0c;下载链接&#xff1a;https://files.cnblogs.com/files/AmyZheng/required.rar 第一个实例 1、引用jar包 2、创建数据库和表 DROP TABLE IF EXISTS t_customer ;CREATE TABLE t_customer (id INT(5) PRIMARY KE…

使用Spring Webservices构建SOAP Webservices代理模块

前一段时间&#xff0c;我想看看使用Spring Web Services编写Web服务代理&#xff08;wsproxy&#xff09;有多么容易。 所以&#xff0c;我想我会在Github上分享结果。 可以随意使用它 &#xff08;Apache v2许可证&#xff09;或将其用作自己开发的基础。 本文的其余部分将解…

joc杂志影响因子2019_排名 ‖ 2019年中国体育学期刊影响因子

近日&#xff0c;由中国科学文献计量评价研究中心、清华大学图书馆研制&#xff0c;《中国学术期刊&#xff08;光盘版&#xff09;》电子杂志社有限公司出版的《中国学术期刊影响因子年报》&#xff08;2019版&#xff09;发布。该年报是中国科学文献计量评价研究中心自2002年…

Confluence 6 MySQL 3.x 字符集编码问题

MySQL 3.x is 已知在大写和小写转换的时候有些问题&#xff08;non-ASCII&#xff09;。 问题诊断 请按照 Troubleshooting Character Encodings 页面中的内容对问题进行诊断。如果大小写字符串编码诊断显示不同&#xff0c;那么有可能是你数据库导致的。一个错误的数据库大小写…

手型向下 点击一下 福昕_PPT多张缩略图点击放大展示

↑点击上方“菜鸟PPT”关注&#xff0c;教你玩转PPT&#xff01;多张图片单击放大展示&#xff0c;以前做过一个比较复杂的&#xff0c;在同一页PPT里面做&#xff0c;加了很多个“进入”和“退出”的动画&#xff0c;维护起来比较麻烦。今天&#xff0c;菜鸟菌跟大家一起来学习…

6个经典的JavaScript报错分析

代码报错是经常发生的一件事&#xff0c;我们要确定是什么原因造成的&#xff0c;以及如何避免错误。 1. Uncaught TypeError: Cannot read property 该错误说明没有某个属性&#xff0c;一般是该属性前面的值是undefined或者是null的情况会出现。 2. TypeError: ‘undefined…

git显示服务器所有分支,git 查看所有远程分支以及同步

在多台电脑使用git管理开发分支的时候&#xff0c;会出现这样的情况。电脑A创建了分支1&#xff0c;并且push上了远程仓库。电脑B本地clone仓库默认只会clone下master分支&#xff0c;而其他电脑A推送的分支是不会默认同步下来的。那么如何同步呢&#xff1f;查看电脑B本地仓库…

json-schema 可视化编辑器发布了

json-schema 的用途越来越广泛&#xff0c;除了定义数据结构外&#xff0c;我们还可以使用 json-schema 验证数据格式和生成随机数据&#xff0c;但是编写复杂数据结构的 json-schema 是非常痛苦的事情。假设一个 100 字段的数据结构&#xff0c;如果用 json-schema 定义&#…

tfw文件如何导入cad_如何将CAD的线稿导入PS并和底色分离

【新朋友】 点击标题下方的 CG伴学 迅速关注【老朋友】 点击右上角的按钮 分享 或者 收藏这是 【CG伴学 】制作的第249篇答疑教程观看往期视频教程请点击或者前往公众号自定义菜单【学习中心】我们专门制作了教程汇总目录&#xff0c;你可以根据标题关键词搜索获取我们在后台收…

Python全栈工程师(函数嵌套、变量作用域)

ParisGabriel 感谢 大家的支持 每天坚持 一天一篇 点个订阅吧 灰常感谢 当个死粉也阔以 Python人工智能从入门到精通 globals&#xff08;&#xff09;/locals&#xff08;&#xff09;函数&#xff1a;     globals&#xff08;&#xff09;返回当前全局作用域内变量…

可视化分析js的内存分配与回收

之前写了一篇文章浏览器是怎么看闭包的&#xff0c;发现有些读者对js内存分配与回收懵懵懂懂&#xff0c;理解文章的配图有些困难&#xff0c;我想主要是因为配图省略了一些细节。今天专门写一篇关于js内存分配回收的文章&#xff0c;帮助大家理解js代码的内存表示。原文备份在…

记录程序写入日志_终于有人把MySQL 三大日志讲清楚了

点击上方"蓝字"&#xff0c;关注了解更多日志是 mysql 数据库的重要组成部分&#xff0c;记录着数据库运行期间各种状态信息。mysql日志主要包括错误日志、查询日志、慢查询日志、事务日志、二进制日志几大类。作为开发&#xff0c;我们重点需要关注的是二进制日志( …

在ADF实体PK属性中使用MySQL自动增量PK列

大家好。 继续进行ADF MySQL解决方法系列&#xff0c;今天我们将看到要使用MySQL PK自动增量列和ADF实体PK属性来进行的工作。 如果使用的是Oracle数据库&#xff0c;则可以使用oracle.jbo.domain.DBSequence以及序列和触发器来立即进行操作。 为简单起见&#xff0c;我们将修…

14.正则表达式、re模块、元字符

正则表达式 一、正则表达式所面向的问题 1、判断一个字符串是否匹配给定的格式 判断用户注册帐号是否满足格式 2、从一个字符串中按指定格式提取信息 抓取页面中的链接 二、判断用户提交的邮箱的格式是否正确 三、抓取页面中特定部分数据 er模块 1、findall方法&a…

WeScale 技术篇 —— mpvue 与微信小程序的火花

介绍项目介绍WeScale 定位为音乐训练小程序&#xff0c;初期规划了基础音阶的三个训练&#xff0c;以及他们的镜像模式。数字简谱字母简谱数字简谱对字母简谱后期看情况更新追加其他训练。产品展示扫描下方小程序码或在微信小程序中搜索 WeScale&#xff0c;即可使用。人员介绍…

025 SSM简单搭建

参考了同事的文档&#xff0c;自己也写一篇文档。 同时&#xff0c;补充了一下&#xff0c;程序是如何运行的。 一&#xff1a;SSM框架 1.说明 SSM&#xff08;SpringSpringMVCMyBatis&#xff09;框架集由Spring、SpringMVC、MyBatis三个开源框架整合而成&#xff0c;常作为数…

上升沿_PLC上升沿,下降沿的理解

有网友留言说&#xff1a;上升沿就是在信号从断开到接通的那一瞬间接通&#xff0c;下降沿就是在信号从接通到断开的那一瞬间接通。但是现在的问题它的实际用处是用在哪一些情况。我身边也有PLC可以做个什么实验来体验一下呢&#xff1f;虽然说LD X0 PLS M0与LDP X0 out Y0…