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

  • Java后端 学习路线 笔记汇总表【黑马程序员】
  1. MyBatis-学习笔记01【01.Mybatis课程介绍及环境搭建】【day01】
  2. MyBatis-学习笔记02【02.Mybatis入门案例】
  3. MyBatis-学习笔记03【03.自定义Mybatis框架】
  4. MyBatis-学习笔记04【04.自定义Mybatis框架基于注解开发】【day02】
  5. MyBatis-学习笔记05【05.使用Mybatis完成CRUD】
  6. MyBatis-学习笔记06【06.使用Mybatis完成DAO层的开发】
  7. MyBatis-学习笔记07【07.Mybatis的连接池及事务】【day03】
  8. MyBatis-学习笔记08【08.动态SQL】
  9. MyBatis-学习笔记09【09.Mybatis的多表操作】
  10. MyBatis-学习笔记10【10.JNDI扩展知识】
  11. MyBatis-学习笔记11【11.Mybatis的缓存】【day04】
  12. 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多对多操作-查询用户获取用户所包含的角色信息

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部