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多对多操作-查询用户获取用户所包含的角色信息
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!






























