栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

MyBatis-学习笔记09【09.Mybatis的多表操作】

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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多对多操作-查询用户获取用户所包含的角色信息

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/731445.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号