我是靠谱客的博主 活力裙子,最近开发中收集的这篇文章主要介绍idea__MyBatis框架11——多表查询(一对一、一对多),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

多表查询(一对一、一对多):

      • 一、准备环境
      • 二、一对一
        • 第一种方式:
        • 第二种方式:
      • 三、一对多
        • ————————
        • 创作不易,如觉不错,随手点赞,关注,(* ̄︶ ̄),谢谢~~

一、准备环境

mybatis中的多表查询
表之间的关系有几种:

  1. 一对多
  2. 多对一
  3. 一对一
  4. 多对多

举例:
用户和订单就是一对多
订单和用户就是多对一
一个用户可以下多个订单
多个订单属于同一个用户

	人和身份证号就是一对一
		一个人只能有一个身份证号
		一个身份证号只能属于一个人

	老师和学生之间就是多对多
		一个学生可以被多个老师教过
		一个老师可以交多个学生
特例:
	如果拿出每一个订单,他都只能属于一个用户。
	所以Mybatis就把多对一看成了一对一。

mybatis中的多表查询:
	示例:用户和账户
		一个用户可以有多个账户
		一个账户只能属于一个用户(多个账户也可以属于同一个用户)
	步骤:
		1、建立两张表:用户表,账户表
			让用户表和账户表之间具备一对多的关系:需要使用外键在账户表中添加
		2、建立两个实体类:用户实体类和账户实体类
			让用户和账户的实体类能体现出来一对多的关系
		3、建立两个配置文件
			用户的配置文件
			账户的配置文件
		4、实现配置:
			当我们查询用户时,可以同时得到用户下所包含的账户信息
			当我们查询账户时,可以同时得到账户的所属用户信息

我们创建多一张表,并插入三条数据,表的内容如下:

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,48,1000),(2,45,1000),(3,48,2000);

插入完成之后是这个样子的,打开我们的架构设计器,可以看到我们user表的主键id,是account表uid的外键

在这里插入图片描述
在这里插入图片描述
接着我们创建account表对应的实体类

在这里插入图片描述
创建接口

在这里插入图片描述
创建IAccountDao.xml文件

在这里插入图片描述
在主配置xml文件中配置IAccountDao.xml

在这里插入图片描述

创建Account测试类

在这里插入图片描述
运行查询所有方法,没有问题,account表的数据出来了

在这里插入图片描述
环境测试完成

二、一对一

第一种方式:

我们先来看一条sql语句,我们发现,我们查询出来的有两个id

在这里插入图片描述
我们不想让它有两个id,我们给它取个别名,如下:注释已经写的很清楚了,就不解释了,在mysql懂写了,我们就去mybatis了

在这里插入图片描述
创建AcoountUser子类继承我们的Acoount父类

在这里插入图片描述
接着创建接口

在这里插入图片描述
配置IAcoountDao.xml文件

在这里插入图片描述
运行测试方法,数据没有问题,出来了

在这里插入图片描述

第二种方式:

在我们的Account实体类中,创建一个主表实体的对象

在这里插入图片描述
接着在IAccountDao.xml配置,association标签是一对一关联

在这里插入图片描述
运行测试方法,没有问题,封装进来了

在这里插入图片描述

三、一对多

回到IUserDao接口中,有一个findAll接口

在这里插入图片描述
回到我们的User实体类中,添加account集合引用,关联

在这里插入图片描述
配置IUserDao.xml文件,如下

在这里插入图片描述
运行查询所有测试方法,没有问题,数据出来了

在这里插入图片描述
为什么只有两条数据呢?情况如下,写的很清楚了

在这里插入图片描述

————————
创作不易,如觉不错,随手点赞,关注,(* ̄︶ ̄),谢谢~~

最后

以上就是活力裙子为你收集整理的idea__MyBatis框架11——多表查询(一对一、一对多)的全部内容,希望文章能够帮你解决idea__MyBatis框架11——多表查询(一对一、一对多)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部