当前位置: 首页 > news >正文

Java课题笔记~ 关联映射

一、MyBatis关联查询

在关系型数据库中,表与表之间存在着3种关联映射关系,分别为一对一、一对多、多对多。

 

一对一:一个数据表中的一条记录最多可以与另一个数据表中的一条记录相关。列如学生与学号就属于一对一关系。

一对多:主键数据表中的一条记录可以与另外一个数据表任意数量的记录相关,另外一个数据表中的一条记录只能与主键数据表中的某一条记录相关。列如班级与学生就属于一对多关系。

多对多:一个数据表中的一条记录可以与另外一个数据表任意数量的记录相关,另外一个数据表中的一条记录也可以与本数据表中任意数量的记录相关。列如学生和老师就属于多对多关系。

1、MyBatis一对一关联查询

在MyBatis中,通过<association>元素来处理一对一关联关系。

<association>元素提供了一系列属性用于维护数据表之间的关系。

<association>元素中的属性如下表所示:

注意:接口文件的路径和配制映射文件的路径不一样,详情见下图:  

 

 < association>元素的示例配置如下:

 < !- - 方式一:嵌套查询-->
< association property="card" column="card_id" javaType="com.Jorya.model.StudentIdCard"select="com.Jorya.mapper.StudentIdCardMapper.findCodeById"/><!-- 方式二: 嵌套结果-->
<association property="card" javaType="com.Jorya.Model.StudentIdCard"><id property="id" column="card_id"/><result property="code" column="code"/>
</association>

2、MyBatis一对多关联查询

MyBatis中有一个< resultMap>元素,其中包含了一个< collection>子元素,MyBatis通过这个子元素来处理一对多联系。

< collection>子元素的属性大部分与< association>元素相同,其中包含了一个特殊元素——ofType,ofType与javaType对应,用于指定实体对象中集合类属性所包含的元素类型。
< collection>元素的示例配置如下:

<!--嵌套查询>
<collection property="ordersList" column="id"ofType="con.itheima.po.Orders"select="com.itheima.mapper.OrderMapper.selectOrders"/>
<!--嵌套结果-->
<collection property="orderList" ofType="com.itheima.po.Orders'><id property="id" column="orders_id"/><result property="number' column="number"/>
</collection>

3、MyBatis多对多关联查询

通过resultMap的collection元素实现;

<collection />是mybatis处理多对多关系的,是指拿到一个集合,property="listRight"的内容是对应你model层表中表示多对多关系的属性名

 fetchType表示是懒加载还是立刻加载;  

select表示是选择关联关系的哪个方法获取数据 ;

column表示传到映射关系的列的值
 

http://www.lryc.cn/news/114788.html

相关文章:

  • 一零六七、JVM梳理
  • 【CSS】网格布局(简单布局、网格合并、网格嵌套)
  • 06 Ubuntu22.04上的miniconda3安装、深度学习常用环境配置
  • 【CSS3】CSS3 动画 ② ( 动画序列 | 使用 from 和 to 定义动画序列 | 定义多个动画节点 | 代码示例 )
  • 最优化:建模、算法与理论
  • 拿捏--->打印菱形
  • 【SpringBoot笔记】定时任务(cron)
  • Redis单机,主从,哨兵,集群四大模式
  • 2023年8月份华为H12-811更新了
  • [K8S:命令执行:权限异常:解决篇]:通过更新kubeconfig配置相关信息
  • 帆软设计器报表加载不出折线图的原因
  • [QCA6174]sdx12平台WiFi QCA6174在驱动加载的时候增加模块参数方法
  • Ajax-AJAX请求的不同发送方式
  • 简易图书管理系统(面向对象思想)
  • C++ 函数模板与类模板
  • Tailwind CSS:简洁高效的工具,提升前端开发体验
  • NR CSI(六) CSI reporting using PUCCH
  • 论文阅读---《Unsupervised Transformer-Based Anomaly Detection in ECG Signals》
  • 5G上行干扰规避的参数策略
  • CTF流量题解tcp1
  • Django快速入门
  • Python “牵手” 淘宝商品详情数据获取方法,淘宝API申请指南
  • OpenScene
  • HDFS中的Trash垃圾桶回收机制
  • segment-anything使用说明
  • 在魔塔社区搭建通义千问-7B(Qwen-7B)流程
  • Redis 加入服务列表自启动
  • MyCat管理及监控——zookeeper及MyCat-web安装
  • 基于spring boot的餐饮管理系统java酒店饭店菜谱 jsp源代码mysql
  • JVM分析工具JProfiler介绍及安装