MyBatis高级查询
-------------------------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高级查询的更多相关文章
- MyBatis 高级查询环境准备(八)
MyBatis 高级查询 之前在学习 Mapper XML 映射文件时,说到 resultMap 标记是 MyBatis 中最重要最强大也是最复杂的标记,而且还提到后面会详细介绍它的高级用法. 听到高 ...
- MyBatis 高级查询之多对多查询(十一)
高级查询之多对多查询 查询条件:根据玩家名,查询游戏信息 我们在之前创建的映射器接口 GameMapper.java 中添加接口方法,如下: /** * 根据玩家名查询游戏 * @param name ...
- MyBatis 高级查询之一对多查询(十)
高级查询之一对多查询 查询条件:根据游戏名称,查询游戏账号信息 我们在之前创建的映射器接口 GameMapper.java 中添加接口方法,如下: /** * 根据游戏名查询游戏账号 * @param ...
- MyBatis 高级查询之一对一查询(九)
高级查询之一对一查询 查询条件:根据游戏角色ID,查询账号信息 我们在之前创建的映射器接口 GameMapper.java 中添加接口方法,如下: /** * 根据角色ID查询账号信息 * @para ...
- Mybatis 高级查询的小整理
高级查询的整理 // resutlType无法帮助我们自动的去完成映射,所以只有使用resultMap手动的进行映射 resultMap: type 结果集对应的数据类型 id 唯一标识,被引用的时候 ...
- Mybatis高级查询之关联查询
learn from:http://www.mybatis.org/mybatis-3/zh/sqlmap-xml.html#Result_Maps 关联查询 准备 关联结果查询(一对一) resul ...
- MyBatis从入门到精通(第6章):MyBatis 高级查询->6.1.2高级结果映射之一对多映射
jdk1.8.MyBatis3.4.6.MySQL数据库5.6.45.IntelliJ IDEA 2019.3.1 本章主要包含的内容为 MyBatis 的高级结果映射,主要处理数据库一对一.一对多的 ...
- MyBatis从入门到精通(第6章):MyBatis 高级查询->6.1.1高级结果映射之一对一映射
jdk1.8.MyBatis3.4.6.MySQL数据库5.6.45.IntelliJ IDEA 2019.2.4 本章主要包含的内容为 MyBatis 的高级结果映射,主要处理数据库一对一.一对多的 ...
- Mybatis高级查询之一对一查询的四种方法
目录 1. 一对一查询 1.1 一对一嵌套结果查询 1.2 使用resultMap配置一对一映射 1.3 使用resultMap的association标签配置一对一映射 1.4 associatio ...
随机推荐
- 转载-WebLogic使用总结
WebLogic使用总结(七)——WebLogic部署Web应用并绑定域名 孤傲苍狼 2015-01-13 15:19 阅读:2472 评论:1 WebLogic使用总结(六)——WebLog ...
- httpclient 用户名密码认证实例
import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.com ...
- 9-16Jenkins-1第一个任务
jenkins安装搭建 #mac安装jenkins brew install jenkins #或下载war包 java -jar jenkins.war 第一个jenkins任务 创建一个自由风格的 ...
- sklearn安装
1.准备工作 安装sklearn之前,我们需要先安装numpy,scipy函数库. 由于用pip install numpy, scipy大概率安装失败(Win下),一个简单的解决方法是安装UCI第三 ...
- solr 通过【配置、多值字段、动态字段】来解决文本表达式查询精确到句子的问题
一.Solr Multivalue field属性positionIncrementGap理解 分类:Lucene 2014-01-22 10:39阅读(3596)评论(0) 参考:http://ro ...
- java impl
java impl 是一个资源包,用来存放java文件的.在Java开发中,通常将后台分成几层,常见的是三层mvc:model.view.controller,模型视图控制层三层,而impl通常处于c ...
- HTML5须知的特征和技术
1.新的Doctype XHTML文档类型 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &q ...
- windows巡检
参考网站: http://www.jb51.net/os/windows/525017.html 系统自带工具巡检 : 先说说如何检查系统健康度的方法,Win+R只有只要输入一个命令: perf ...
- docker容器中搭建kafka集群环境
Kafka集群管理.状态保存是通过zookeeper实现,所以先要搭建zookeeper集群 zookeeper集群搭建 一.软件环境: zookeeper集群需要超过半数的的node存活才能对外服务 ...
- cnapckSurround c++builder Region 代码折叠快捷键
C++Builder代码折叠 cnapckSurround c++builder Region 代码折叠快捷键,可以导入导出,IDE code edit,cnpack menu surround wi ...