–查询所有学生所在班级的信息(一对一)
–班级查询学生的操作(一对多)
–遇到的问题:
查询的SQL语句非常的简单,但是如何把查询的数据接受这个就是一个问题
[1]把每一个实体中的字段拿出来组建成一个新的实体 返回还是resultType
存在的问题:映射的内容会出现重复的字段
[2] resultMap:映射的操作
接口
StudentMapper.java

public interface StudentMapper {//多表查询操作List<Student>  selectAll2();
}

ClazzMapper.java

public interface ClazzMapper {//多表查询班级学生信息List<Clazz>   selectAll2();
}

XML
StudentMapper.xml

    <select id="selectAll2"  resultMap="rm2">SELECT  *  FROM  student  s  JOIN   clazz   c  ON  s.clazzno=c.clazzno</select><resultMap id="rm2" type="student"><!--注意:书写的每一个值就是接受数据库查询的数据所以想要接受的数据的字段不可以省去--><id column="sid" property="sid"></id><result column="sname" property="sname"></result><result column="clazzno" property="clazzno"></result><association property="cla" javaType="clazz"> //‘cla’student表中的clazz对象<id column="clazzno" property="clazzno"></id><result column="cname" property="cname"></result></association></resultMap>

Clazzmapper.xml

    <select id="selectAll2" resultMap="rm2">SELECT  *  FROM  student  s  JOIN   clazz   c  ON  s.clazzno=c.clazzno</select><resultMap id="rm2" type="clazz"><id column="clazzno" property="clazzno"></id><result column="cname" property="cname"></result><collection property="li" ofType="student">  //‘li’ clazz表中的学生集合 <id column="sid" property="sid"></id><result column="sname" property="sname"></result><result column="clazzno" property="clazzno"></result></collection></resultMap>

测试

        //[4]执行方法StudentMapper stuMapper = sqlSession.getMapper(StudentMapper.class);ClazzMapper  claMapper = sqlSession.getMapper(ClazzMapper.class);//查询所有学生所在的班级的信息/*List<Student> list = stuMapper.selectAll2();for(Student  student:list){System.out.println(student);}*/List<Clazz> list = claMapper.selectAll2();for(Clazz  clazz:list){System.out.println(clazz);}

4、Auto_Mapping
数据注入的方式
[1]自动注入方式 Auto_Mapping (自己封装的实体属性和数据库的字段是一样的情况Mybatis会自动的注入)
[2]手动注入的方式 resultMap
作用:解决自己做的实体的封装和数据库的字段不一致的问题
5、resultType和resultMap使用场景
[1]如果你做的是单表的查询并且封装的实体和数据库的字段一一对应 resultType
[2]如果实体封装的属性和数据库的字段不一致 resultMap
[3]使用的是多表的联合查询 resultMap
[4]使用N+1查询的时候 resultMap

MyBatis中多表查询(多表查询语句实现)重点相关推荐

  1. mybatis 中 Example 的使用 :条件查询、排序、分页(三种分页方式 : RowBounds、PageHelpler 、limit )

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. import tk.mybatis.mapper.entity.Example;import com ...

  2. MyBatis中万能的Map和模糊查询

    文章目录 1.假设实体类或者数据库中的表的字段过多,应当考虑使用Map 2.使用Map,可以不用把表的属性全写出来,只要写需要的属性 3.模糊查询 Map传递参数,直接在sql中取出key即可 对象传 ...

  3. mybatis中的${} 与 #{}实际使用-模糊查询的几种实现方式

    直接传参法 直接传参法,就是将要查询的关键字keyword,在代码中拼接好要查询的格式,如%keyword%,然后直接作为参数传入mapper.xml的映射文件中. public void selec ...

  4. myBatis中通过map集合传入数据查询结果为空

    入参Mapper的写法: Test文件:   在调用findUserByMap进行模糊查询的时候一直查询出来为空,起初以为是数据库的问题,但是数据库中是存在数据的,我就感觉是在'%${username ...

  5. (探讨)MyBatis中的N+1问题,多表关联查询效率高点还是多次单表查询效率高

    MySQL多表关联查询效率高点还是多次单表查询效率高,为什么? https://blog.csdn.net/weixin_33869377/article/details/86265527 MyBat ...

  6. Springboot中使用Mybatis框架对数据库进行联表查询,踩坑填坑

    因为mybatis使用的基本是原生sql语句 所以首先从数据库开始说 以mysql数据库为例,对表的连接查询分为四种 内连接,外连接,交叉连接,和联合连接 内连接使用比较运算符根据每个表共有的列的值匹 ...

  7. mybatis中的多表查询

    首先我们先创建两个表和pojo用来演示多表查询,如下: 用户表:t_emp表,其中emp_id为自增主键. t_emp对应的pojo:Employee public class Employee {p ...

  8. MyBatis学习总结(五)——实现关联表查询

    2019独角兽企业重金招聘Python工程师标准>>> 一.一对一关联 1.1.提出需求 根据班级id查询班级信息(带老师的信息) 1.2.创建表和数据 创建一张教师表和班级表,这里 ...

  9. jpa多表关联查询_Spring Boot 整合mybatis如何自定义 mapper 实现多表关联查询

    上一篇文章已经介绍了自定义 mapper 实现自定义的方法,其实实现了通过自定义的mapper就可以做多表关联等复杂查询.但是很多朋友还是反馈说没有实现多表关联查询,所以,今天把文章又重新修改了,增加 ...

  10. hive 导出json格式 文件_hive中创建hive-json格式的表及查询

    在hive中对于json的数据格式,可以使用get_json_object或json_tuple先解析然后查询. 也可以直接在hive中创建json格式的表结构,这样就可以直接查询,实战如下(hive ...

最新文章

  1. oracle数据库按照城市分组_大数据分组怎样才会更快
  2. python基础1(来自廖雪峰的官方网站)
  3. 扫地机器人粘住老鼠板怎么办_家里老鼠的危害性及如何有效灭鼠
  4. qimage加载bmp图片_批量修改图片大小,我发现了最简单的方法!
  5. Java实现K-means
  6. Java BigDecimal valueOf()方法与示例
  7. 上传身份证照片js_html+css+js 实现拍照预览上传图片功能
  8. Sentinel服务熔断配置exceptionsToIgnore_削峰填谷_流量控制_速率控制_服务熔断_服务降级---微服务升级_SpringCloud Alibaba工作笔记0053
  9. html页面之间传表格,如何在html 页面插入一个表格,参数的传递,
  10. X96 MAX变砖后usb烧录修复(by quqi99)
  11. 一个很有意思的熊猫免疫器
  12. android上下居中,android Spinner:在spinner中垂直居中文本
  13. 荣耀 MagicBook 14 2022配置怎么样 值不值得买
  14. QGIS转换shp/img文件坐标系(wgs84/gcj02/bd09)
  15. 关于Android app 国际化 中英文翻译的细节处理
  16. RT-Thread Nano移植使用整理
  17. 北大igem生物计算机,北京大学iGEM团队在2018国际大赛中再获佳绩
  18. c35是什么意思_混凝土c25、c30、c35分别代表什么意思?
  19. 网络安全工程师考证指南
  20. Springboot实现支付宝沙箱支付功能

热门文章

  1. 数据结构与算法--翻转单词顺序
  2. python窗口显示表格_pyqt 调用tablewidget窗口时无法显示窗口内容
  3. oracle 取英文排序,Oracle中中文、数字,英文混杂形式的字段进行排序的方法
  4. 补丁 检测系统_大云制造 | BCLinux For ARM64 V7.6操作系统正式发布
  5. C - Swaps 2(树状数组,思维)
  6. P4781 【模板】拉格朗日插值
  7. [NOI2021 day1]轻重边(树链剖分),路径交点(矩阵行列式)
  8. P4240-毒瘤之神的考验【莫比乌斯反演,平衡规划】
  9. jzoj3518-进化序列(evolve)【位运算】
  10. P1220-关路灯【区间dp】