Mybatis多表查询

您所在的位置:网站首页 学生与教师是多对多的关系吗 Mybatis多表查询

Mybatis多表查询

2024-07-03 13:25| 来源: 网络整理| 查看: 265

需求描述 Mybatis是一个优秀的持久层框架,利用Mybatis可以实现对数据库的多表查询操作,假设有两个实体类,分别是学生实体类和课程实体类,它们之间是多对多的关系,即一个学生可以选多门课程,而一门课程可以被多个学生选择。属性如下:

学生表

字段属性类型备注studentIdint学生ID,主键studentNamevarchar学生姓名studentAgeint学生年龄

课程表

字段属性类型备注courseIdint课程ID,主键courseNamevarchar课程名称

中间表

字段属性类型备注sidint学生IDcidint课程ID

其中主键为(学生ID+课程ID),它们又分别是外键。

数据库信息

在这里插入图片描述 要求一:查询所有的学生信息以及各自的选修课程

student实体类

private int studentId; private String studentName; private int studentAge; private Listlist;

studentDao接口

/** * 查询所有的学生信息,并且加上所选的课程 */ public List findAll();

XML文件

select * from student left outer join sc on student.studentId=sc.sid left outer join course on course.courseId=sc.cid;

测试类

@Test public void findAll(){ List list=studentDao.findAll(); for(Student student:list){ System.out.println(student); } }

结果

在这里插入图片描述

要求二:查询所有的课程信息以及所对应所有的选修信息

course实体类

private int courseId; private List list; private String courseName;

courseDao接口

/** * 查询所有的课程以及对应的选修学生信息 * @return */ public List findAll();

XML文件

select * from course left outer join sc on course.courseId=sc.cid left outer join student on student.studentId=sc.sid;

测试类

@Test public void findAll(){ List list=courseDao.findAll(); for(Course course:list){ System.out.println(course); } }

结果

在这里插入图片描述

学习代码:https://download.csdn.net/download/weixin_45680962/12597435 本博客纯属个人学习笔记,如有错误,感激指正


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3