多对多左连接查询

  • 左连接查询

老师对学生是多对多的关系,把中心放在老师上一个老师可以教多个学生,实际上老师对学生也可以理解为一对多的关系

左连接查询

场景:查询老师,并且把关联的学生也查出来

Teacher.java 映射文件:

@Getter@Setter@ToString
public class Teacher {private Integer teacher_id;private String teacher_name;List<Student> students = new ArrayList<>(); // 一个老师对应多个学生
}

创建一个 TeacherMapper 接口文件,代码如下:

public interface TeacherMapper {/*查询老师,并且把关联的学生也查出来*/public List<Teacher> getAllTeachers();
}

创建一个 TeacherMapper 的映射文件:

<mapper namespace="com.itlike.mapper.TeacherMapper"><select id="getAllTeachers" resultMap="teacherMap">SELECT * FROM `teacher` as tLEFT JOIN `stu_teacher_rel` as rON t.teacher_id = r.teacher_idLEFT JOIN `student` as sON s.stu_id = r.stu_id;</select><resultMap id="teacherMap" type="teacher"><id column="teacher_id" property="teacher_id"/><result column="teacher_id" property="teacher_id"/><collection property="students" javaType="list" ofType="student"><id column="stu_id" property="stu_id"/><result column="stu_name" property="stu_name"/></collection></resultMap></mapper>

测试类中:

public void test(){SqlSession sqlSession = MybatisUtils.openSession();TeacherMapper teacherMapper = sqlSession.getMapper(TeacherMapper.class);List<Teacher> allTeachers = teacherMapper.getAllTeachers();for (Teacher teacher : allTeachers) {System.out.println(teacher);}}

运行效果:与数据库查询结果相同。

【MyBatis笔记】17-多对多做左连接查询(查询老师,并且把关联的学生也查出来)相关推荐

  1. 15-多对多做左连接查询(查询老师,并且把关联的学生也查出来)

    多对多左连接查询 目录 左连接查询 老师对学生是多对多的关系,把中心放在老师上,一个老师可以教多个学生,实际上老师对学生也可以理解为一对多的关系. 左连接查询 场景:查询老师,并且把关联的学生也查出来 ...

  2. 【MyBatis笔记】10-多对一左连接查询分步查询(查询所有订单及订单对应的客户)

    左连接查询(级联查询) 回顾一下:左连接查询,将左边表(order)里的全部内容查出,右边表(customer)查满足条件的. SELECT * FROM `order` AS o LEFT JOIN ...

  3. 【MyBatis笔记】13-一对多左连接查询分步查询(查询所有客户及客户对应的订单)

    查询所有客户以及对应的订单 左连接查询(不支持懒加载) 分步查询(支持懒加载) 左连接查询(不支持懒加载) 场景:我们想要查询出所有的客户,并且把每个客户对应的订单也查出来.这时候可以使用左连接查询. ...

  4. mybatis高级映射多对多查询(二)

    在这篇博客中,我来介绍下mybatis中的多对多查询的案例,在mybatis中,如何使用ResultMap来实现多对多的查询? 案例:一个user可以有很多role,一个role可以有很多entitl ...

  5. MySQL数据操作与查询笔记 • 【第7章 连接查询】

    全部章节   >>>> 本章目录 7.1 内连接查询 7.1.1 交叉连接(笛卡尔积) 7.1.2 内连接查询概要 7.1.3 内连接案例 7.1.4 自然连接 7.2 多表连 ...

  6. SQLServer学习笔记八:多表连接查询

    学习目标 掌握多表连接查询的概念 学会使用内连接查询数据 学会使用外连接查询数据 学会使用UNION合并查询结果 前面学习的内容都是基于单个数据库表的查询,下面将学习涉及多个表的数据查询. 多表连接查 ...

  7. Mybatis笔记整理2(各种关联查询)

    POJO类,均省略setget与tostring方法 User类 public class User implements Serializable {private static final lon ...

  8. Oracle学习笔记(三)。连接查询。等值连接,非等值连接,自连接,LEFT OUTER JOIN,RIGHT JOIN,FULL JOIN,自然连接,内连接 INNERJOIN

    文章目录 1. 什么是多表查询 2. 多表链接方式 3. 多表连接语法 3.1 语法结构 3.2 定义连接 3.3 原则 4. 等值连接-内连接 4.1 什么是等值连接 4.2 抉择矩阵 4.3 使用 ...

  9. MySQL笔记 07:多表连接查询

    1. 分类 1.1 按年代分类 sql92标准:仅支持内连接 sql99标准[推荐]:支持内连接 + 交叉连接 + 左/右外连接 1.2 按功能分类 内连接:等值连接,非等值连接,自连接 外连接:左外 ...

最新文章

  1. context.xml mysql_在tomcat下context.xml中配置各种数据库连接池(示例代码)
  2. 设计模式 — 行为型模式 — 访问者模式
  3. python自动化测试locksetting/gatekeeper/keymaster/vts等
  4. 阿里P8架构师谈:MySQL行锁、表锁、悲观锁、乐观锁的特点与应用
  5. 谷歌新开源的MorphNet到底能为我们做什么?
  6. android 开发对gif解码(适配android 4.2、4.3、4.4版本)
  7. SpringCloud工作笔记070---SpringCloud中使用Redis存储List类型数据
  8. Selenium WebDriver架构
  9. margin和padding的学习
  10. 计算机网络综合布线课设,中职计算机网络综合布线课程改革与思考
  11. Restorator 2007 Build 1729 汉化版
  12. Python 每日一题(计算数值和)
  13. python数据清洗代码_微博数据清洗(Python版)
  14. Jupyter notebook系列(2):使用技巧(快捷键,多行输出,多光标操作,Unix系统命令的使用,查看输入输出历史,保存记录点与分享,抑制文末输出,图片输出,多环境kernel切换)
  15. RT-THREAD + HC32F460 + AIR724 + ALIIOT
  16. ARM芯片学习内容规划及ARM开发环境的搭建
  17. 零基础学CocosCreator·第八季-双人对战五子棋
  18. 超级通俗易懂的自然连接
  19. 【笔记】MS5837-30BA压力传感器调试笔记
  20. 前端 · 深入理解 transform 函数的计算原理 ①

热门文章

  1. 手机压缩包删除有什么后果?
  2. 用 Go 构建一个区块链 -- Part 1: 基本原型
  3. 对string类型字符串操作
  4. 2.2.2 物理层设备(中继器、集线器)(转载)
  5. 大数据数据科学家常用面试题_面试有关数据科学,数据理解和准备的问答
  6. power bi图表_Power BI中的图表类型概述
  7. sql 获取数据库字段信息_使用DBATools获取SQL数据库详细信息
  8. merge语句_SQL Server MERGE语句概述和示例
  9. dmf nmf_SQL Server 2019 –新的DMF sys.dm_db_page_info
  10. C++Primer第四版 阅读笔记 第二部分 “容器和算法”