-------------------------siwuxie095

MyBatis 高级查询

1、MyBatis 作为一个 ORM 框架,也对 SQL 的高级查询做了支持,

MyBatis 高级查询分为如下三种:

(1)一对一

(2)一对多

(3)多对多

「MyBatis 高级查询 也被称为 MyBatis 高级结果映射」

2、案例:用户、订单、订单详情、商品的关系

(1)一对一

1)场景:订单和用户的关系

2)描述:相对于订单来说,一个订单只能属于一个用户

PS:实际上,订单和用户的关系是一对多,这里采用了

相对的概念,从单向看,就是一对一

(2)一对多

1)场景:订单和订单详情的关系

2)描述:一个订单可以有多个订单详情,一个订单详情只能属于一个订单

(3)多对多

1)场景:订单和商品的关系

2)描述:一个订单可以有多个商品,一个商品可以属于多个订单

PS:这里需要订单详情在中间,以维护关系

3、建表

(1)一对一

1)通过外键建立关系:假设一对一的任意一方为多,在多的那一方创建

字段作为外键,指向一的那一方的主键,并将外键设置为唯一

2)通过主键建立关系:一方的主键对应另一方的主键

(2)一对多:通过外键建立关系

在多的那一方创建字段作为外键,指向一的那一方的主键

(3)多对多:创建第三张表维护关系

第三张表至少要有两个字段作为外键,分别指向多对多双方的主键

【made by siwuxie095】

MyBatis高级查询的更多相关文章

  1. MyBatis 高级查询环境准备(八)

    MyBatis 高级查询 之前在学习 Mapper XML 映射文件时,说到 resultMap 标记是 MyBatis 中最重要最强大也是最复杂的标记,而且还提到后面会详细介绍它的高级用法. 听到高 ...

  2. MyBatis 高级查询之多对多查询(十一)

    高级查询之多对多查询 查询条件:根据玩家名,查询游戏信息 我们在之前创建的映射器接口 GameMapper.java 中添加接口方法,如下: /** * 根据玩家名查询游戏 * @param name ...

  3. MyBatis 高级查询之一对多查询(十)

    高级查询之一对多查询 查询条件:根据游戏名称,查询游戏账号信息 我们在之前创建的映射器接口 GameMapper.java 中添加接口方法,如下: /** * 根据游戏名查询游戏账号 * @param ...

  4. MyBatis 高级查询之一对一查询(九)

    高级查询之一对一查询 查询条件:根据游戏角色ID,查询账号信息 我们在之前创建的映射器接口 GameMapper.java 中添加接口方法,如下: /** * 根据角色ID查询账号信息 * @para ...

  5. Mybatis 高级查询的小整理

    高级查询的整理 // resutlType无法帮助我们自动的去完成映射,所以只有使用resultMap手动的进行映射 resultMap: type 结果集对应的数据类型 id 唯一标识,被引用的时候 ...

  6. Mybatis高级查询之关联查询

    learn from:http://www.mybatis.org/mybatis-3/zh/sqlmap-xml.html#Result_Maps 关联查询 准备 关联结果查询(一对一) resul ...

  7. MyBatis从入门到精通(第6章):MyBatis 高级查询->6.1.2高级结果映射之一对多映射

    jdk1.8.MyBatis3.4.6.MySQL数据库5.6.45.IntelliJ IDEA 2019.3.1 本章主要包含的内容为 MyBatis 的高级结果映射,主要处理数据库一对一.一对多的 ...

  8. MyBatis从入门到精通(第6章):MyBatis 高级查询->6.1.1高级结果映射之一对一映射

    jdk1.8.MyBatis3.4.6.MySQL数据库5.6.45.IntelliJ IDEA 2019.2.4 本章主要包含的内容为 MyBatis 的高级结果映射,主要处理数据库一对一.一对多的 ...

  9. Mybatis高级查询之一对一查询的四种方法

    目录 1. 一对一查询 1.1 一对一嵌套结果查询 1.2 使用resultMap配置一对一映射 1.3 使用resultMap的association标签配置一对一映射 1.4 associatio ...

随机推荐

  1. 学习笔记之Cloud computing

    Cloud computing - Wikipedia https://en.wikipedia.org/wiki/Cloud_computing

  2. Missing Number @leetcode

    Given an array containing n distinct numbers taken from 0, 1, 2, ..., n, find the one that is missin ...

  3. ROS-PCQ基于IP的限速(总带宽上下行5M)

    /ip firewall mangle add chain=forward src-address=192.168.0.0/16 \ action=mark-connection new-connec ...

  4. xsl如何实现递归复制?

    <xsl:template match="*" mode="addSeatSelectionToAirProduct"> <xsl:eleme ...

  5. servlet的讲解

    https://www.ibm.com/developerworks/cn/java/j-lo-servlet/

  6. javascript的事件流

    事件流包括三个阶段: 1.事件捕获阶段 2.处于目标阶段 3.事件冒泡阶段 1.事件捕获阶段 现在页面中有一个按钮. 如果单击这个按钮的话,在事件捕获过程中,document会首先接收到click事件 ...

  7. C_point指针

    1,关于C语言中变量的访问方式,直接访问[使用变量名直接引用,操作变量进行赋值,改变变量值等操作],间接访问--指针,一种指向变量飞, 程序对变如量的读写操作,实际是对变量所在的存储空间进行写入和取出 ...

  8. ELK配置过程初次安装使用心得--elasticsearch5.4版--及logstash

    安装所遇到的问题:http://www.bubuko.com/infodetail-1889252.html 一,先创建用户和组groupadd es useradd -g es es passwd  ...

  9. 21. oracle游标循环例子

    事例1: create or replace procedure sp_addProjectQj( ret out number, flowid in number --流程Id) ascursor ...

  10. Ubuntu jdk 8 与 6 切换 (安装与配置)

    Switch To Oracle JDK8 Switch To Oracle JDK8 1.1 Switch Oracle JDK in the Unbuntu 14.04 Step1 : Downl ...