MyBatis-学习笔记09【09.Mybatis的多表操作】
- Java后端 学习路线 笔记汇总表【黑马程序员】
- MyBatis-学习笔记01【01.Mybatis课程介绍及环境搭建】【day01】
- MyBatis-学习笔记02【02.Mybatis入门案例】
- MyBatis-学习笔记03【03.自定义Mybatis框架】
- MyBatis-学习笔记04【04.自定义Mybatis框架基于注解开发】【day02】
- MyBatis-学习笔记05【05.使用Mybatis完成CRUD】
- MyBatis-学习笔记06【06.使用Mybatis完成DAO层的开发】
- MyBatis-学习笔记07【07.Mybatis的连接池及事务】【day03】
- MyBatis-学习笔记08【08.动态SQL】
- MyBatis-学习笔记09【09.Mybatis的多表操作】
- MyBatis-学习笔记10【10.JNDI扩展知识】
- MyBatis-学习笔记11【11.Mybatis的缓存】【day04】
- MyBatis-学习笔记12【12.Mybatis注解开发】
目录
1 mybatis表之间关系分析
2 完成account表的建立及实现单表查询
2.1、创建Account数据表
2.2、配置User实体类
2.3、配置Account实体类
3 完成account的一对一操作-通过写account的子类方式查询
4 完成account一对一操作-建立实体类关系的方式
5 完成user的一对多查询操作
6 分析mybatis多对多的步骤并搭建环境
7 mybatis多对多准备角色表的实体类和映射配置
7.1、建立多对多数据表
7.2、实体类和映射配置
8 mybatis多对多操作-查询角色获取角色下所属用户信息
9 mybatis多对多操作-查询用户获取用户所包含的角色信息
1 mybatis表之间关系分析
1、连接池
2、mybatis中的连接池
3、mybatis中的事务
4、mybatis中的多表查询
表之间的关系有几种:一对多、多对一、一对一、多对多
举例:
用户和订单就是一对多
订单和用户就是多对一:一个用户可以下多个订单、多个订单属于同一个用户
人和身份证号就是一对一:一个人只能有一个身份证号、一个身份证号只能属于一个人
老师和学生之间就是多对多:一个学生可以被多个老师教过、一个老师可以交多个学生
特例:如果拿出每一个订单,他都只能属于一个用户。所以Mybatis就把多对一看成了一对一。
2 完成account表的建立及实现单表查询
1、连接池
2、mybatis中的连接池
3、mybatis中的事务
4、mybatis中的多表查询
表之间的关系有几种:一对多、多对一、一对一、多对多
举例:
用户和订单就是一对多
订单和用户就是多对一:一个用户可以下多个订单、多个订单属于同一个用户
人和身份证号就是一对一:一个人只能有一个身份证号、一个身份证号只能属于一个人
老师和学生之间就是多对多:一个学生可以被多个老师教过、一个老师可以交多个学生
特例:如果拿出每一个订单,他都只能属于一个用户。所以Mybatis就把多对一看成了一对一。
mybatis中的多表查询:
示例:用户和账户
一个用户可以有多个账户、一个账户只能属于一个用户(多个账户也可以属于同一个用户)
步骤:
1、建立两张表:用户表、账户表
让用户表和账户表之间具备一对多的关系:需要使用外键在账户表中添加
2、建立两个实体类:用户实体类和账户实体类
让用户和账户的实体类能体现出来一对多的关系
3、建立两个配置文件:用户的配置文件、账户的配置文件
4、实现配置:
当我们查询用户时,可以同时得到用户下所包含的账户信息
当我们查询账户时,可以同时得到账户的所属用户信息
2.1、创建Account数据表
DROP TABLE IF EXISTS `account`;CREATE TABLE `account` (`ID` int(11) NOT NULL COMMENT '编号',`UID` int(11) default NULL COMMENT '用户编号',`MONEY` double default NULL COMMENT '金额',PRIMARY KEY (`ID`),KEY `FK_Reference_8` (`UID`),CONSTRAINT `FK_Reference_8` FOREIGN KEY (`UID`) REFERENCES `user` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;insert into `account`(`ID`,`UID`,`MONEY`) values (1,46,1000),(2,45,1000),(3,46,2000);
2.2、配置User实体类
2.3、配置Account实体类
3 完成account的一对一操作-通过写account的子类方式查询
4 完成account一对一操作-建立实体类关系的方式
5 完成user的一对多查询操作
6 分析mybatis多对多的步骤并搭建环境
1、连接池
2、mybatis中的连接池
3、mybatis中的事务
4、mybatis中的多表查询
示例:用户和角色
一个用户可以有多个角色
一个角色可以赋予多个用户
步骤:
1、建立两张表:用户表、角色表
让用户表和角色表具有多对多的关系。需要使用中间表,中间表中包含各自的主键,在中间表中是外键。
2、建立两个实体类:用户实体类和角色实体类
让用户和角色的实体类能体现出来多对多的关系
各自包含对方一个集合引用
3、建立两个配置文件
用户的配置文件
角色的配置文件
4、实现配置:
当我们查询用户时,可以同时得到用户所包含的角色信息
当我们查询角色时,可以同时得到角色的所赋予的用户信息
7 mybatis多对多准备角色表的实体类和映射配置
7.1、建立多对多数据表
DROP TABLE IF EXISTS `role`;CREATE TABLE `role` (`ID` int(11) NOT NULL COMMENT '编号',`ROLE_NAME` varchar(30) default NULL COMMENT '角色名称',`ROLE_DESC` varchar(60) default NULL COMMENT '角色描述',PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;insert into `role`(`ID`,`ROLE_NAME`,`ROLE_DESC`) values (1,'院长','管理整个学院'),(2,'总裁','管理整个公司'),(3,'校长','管理整个学校');DROP TABLE IF EXISTS `user_role`;CREATE TABLE `user_role` (`UID` int(11) NOT NULL COMMENT '用户编号',`RID` int(11) NOT NULL COMMENT '角色编号',PRIMARY KEY (`UID`,`RID`),KEY `FK_Reference_10` (`RID`),CONSTRAINT `FK_Reference_10` FOREIGN KEY (`RID`) REFERENCES `role` (`ID`),CONSTRAINT `FK_Reference_9` FOREIGN KEY (`UID`) REFERENCES `user` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;insert into `user_role`(`UID`,`RID`) values (41,1),(45,1),(41,2);
7.2、实体类和映射配置
8 mybatis多对多操作-查询角色获取角色下所属用户信息
9 mybatis多对多操作-查询用户获取用户所包含的角色信息
MyBatis-学习笔记09【09.Mybatis的多表操作】相关推荐
- [MyBatis学习笔记] 二、Mybatis基本操作及相关标签介绍
[MyBatis学习笔记] 二.Mybatis基本操作及相关标签介绍 一.Mybatis简介 二.简单的CRUD操作 1.构建SqlSessionFactory (1)编辑mybatis-config ...
- mybatis学习笔记-02-第一个mybatis程序
该视频为狂神说java视频配套笔记(博主自己手打223,日后做个参考223),b站连接:Mybatis最新完整教程IDEA版[通俗易懂]-02-第一个mybatis程序) 文章目录 2.第一个myba ...
- Mybatis学习笔记 4:Mybatis 连表查询(一)——一对多关系
完整代码在这 在查询数据库时,我们经常会遇到多张表联合查询的情况,而Mybatis使连表查询更加简便了,查询出的数据格式非常易于使用,省去了一大部分复杂的代码编写工作,对于关系型数据库来说,数据模型之 ...
- Mybatis学习笔记_5、Mybatis动态SQL
动态 SQL 是 MyBatis 的强大特性之一.MyBatis提供的对SQL语句动态组装的功能解决了开发人员在使用JDBC或其他的框架进行数据库开发时,需要手动拼装SQL的繁琐问题. 动态SQL元素 ...
- 大数据学习笔记34:Hive - 数据库与表操作
文章目录 一.准备工作 1.启动Hadoop 2.启动Hive 二.数据库操作 1.创建数据库 2.查询数据库 (1)显示全部数据库 (2)查询满足条件的数据库 3.修改数据库信息 (1)给数据库添加 ...
- Mybatis学习笔记——第一天
Mybatis学习打卡 Mybatis学习笔记---第一天 Mybatis笔记 第一天 一.引言 1. 现有Jdbc的缺陷 2. Mybatis框架 3. 搭建环境 1) 引入jar包 2) 引入配置 ...
- mybatis学习笔记(13)-延迟加载
2019独角兽企业重金招聘Python工程师标准>>> mybatis学习笔记(13)-延迟加载 标签: mybatis [TOC] resultMap可以实现高级映射(使用asso ...
- mybatis学习笔记(7)-输出映射
2019独角兽企业重金招聘Python工程师标准>>> mybatis学习笔记(7)-输出映射 标签: mybatis [TOC] 本文主要讲解mybatis的输出映射. 输出映射有 ...
- mybatis学习笔记(3)-入门程序一
2019独角兽企业重金招聘Python工程师标准>>> mybatis学习笔记(3)-入门程序一 标签: mybatis [TOC] 工程结构 在IDEA中新建了一个普通的java项 ...
- MyBatis多参数传递之Map方式示例——MyBatis学习笔记之十三
前面的文章介绍了MyBatis多参数传递的注解.参数默认命名等方式,今天介绍Map的方式.仍然以前面的分页查询教师信息的方法findTeacherByPage为例(示例源代码下载地址:http://d ...
最新文章
- 我真不想学 happens - before 了!
- 【深度学习】深度学习的三个主要步骤!
- C# win10系统调用不了系统自带的软键盘osk.exe
- 选择Vert.x的3个理由
- python case语句_高效使用Python字典,技巧都在这里!
- @value 静态变量_C语言基本知识:变量
- 从键盘上输入一个字符串并保存在str1中,并把str1中下表为偶数的字符保存到str2中
- 通过系统架构设计师考试的一点经验(2019年软考)+学习资料下载
- Github每日精选(第16期):录屏工具ScreenToGif
- 基于C#窗体的酒店管理系统
- linux下木马程序病原体的制作和运行
- 最新论文笔记(+9):Achieving Secure Search over Encrypted Data for e-Commerce A Blockchain Approach/ToIT2020
- maven 中使用jdt编译代码
- 今天又接到了交通罚单
- g4560和二代i5_两款处理器奔腾G4560和i5-7400差距?
- 将 Visio 的图片复制到 ppt并能编辑
- 蓝懿学习记录,今天又学到了很多
- 火山视窗文本数组类增删查改操作
- 7-8 金银铜牌 (15 分)
- mysql查询性能测试工具_MySQL性能测试工具MySQLslap使用实例详解
热门文章
- HTML的<span>标签【杂记】
- 北京师范大学计算机应用基础考试,北京师范大学-计算机应用基础作业(一至九全套)...
- oracle多久断开连接,Oracle自动断开连接
- mysql配置kodi16.1_kodi16.1电脑版和机顶盒版安装和使用图文教程
- 贝叶斯算法对文本进行分类实例
- 五、资本资产定价模型 CAPM
- FewRel 2.0数据集:以近知远,以一知万,少次学习新挑战
- 蒙特卡洛梯度估计方法(MCGE)简述
- 揭秘阿里小蜜:基于检索模型和生成模型相结合的聊天引擎 | PaperDaily #25
- idea webapp目录404问题,war包方式运行