首页 > 其他分享 >Mybatis-lesson09-多对一查询 (查询所有的学生及对应的老师信息)-03-12

Mybatis-lesson09-多对一查询 (查询所有的学生及对应的老师信息)-03-12

时间:2023-03-12 21:56:26浏览次数:40  
标签:03 Teacher 12 name 老师 id Student 查询 teacher

在StudentMapper.xml 需要使用复杂查询的方法,

1、先单独查学生和单独查老师

2、在中间使用结果映射  学生中reultMap ="StudentTeacher"

3、中间增加结果映射 resultMap id ="StudentTeacher" type="Student" 还是学生,只是需要通过tid查询到对应的老师

<!--复杂属性要单独处理
    对象:association  在一个表中查询另外一张表,在sql中就叫子查询
    集合:collection-->
<association property="teacher" column="tid" javaType="Teacher" select="getTeacher"/>

第一步:不一样的内容是第三个属性,在学生类中为teacher, 所以:property = "teacher" 在数据库中列名为:column="tid" .

第二步:但学生类中的teacher属性需要在里面说明它为什么类  增加参数:javaType = "Teacher" 类 (注意首字母,大写为类名)

第三步:需要通过对应的tid值,对老师类进行子查询 select=“getTeacher” 获得老师信息。查询出来的结果,老师以对象的形式体现

----输出结果------------------------------------------------------------------------------------

Student(id=1, name=小明, teacher=Teacher(id=1, name=秦老师))
Student(id=2, name=小红, teacher=Teacher(id=1, name=秦老师))
Student(id=3, name=小张, teacher=Teacher(id=1, name=秦老师))
Student(id=4, name=小李, teacher=Teacher(id=1, name=秦老师))
Student(id=5, name=小王, teacher=Teacher(id=1, name=秦老师))

--------------------------------------------------------------------------------------------------

public void testStudent(){
    SqlSession sqlSession = MybatisUtils.getSqlSession();
    StudentMapper mapper = sqlSession.getMapper(StudentMapper.class);
    List<Student> studentList = mapper.getStudent();
    for (Student student : studentList) {
        System.out.println(student);
    }
    sqlSession.close();
}
 

标签:03,Teacher,12,name,老师,id,Student,查询,teacher
From: https://www.cnblogs.com/RUI2022/p/17209271.html

相关文章

  • 2023/3/12 考试总结
    时间安排8.30~9.20T1感觉没思路,T2数据范围好像就是个暴力?于是去写T2,大样例跑了7s。9.20~10.00想了想发现T1可以直接三维树状数组,应该能过。写了写,顺便拍了拍。10.00......
  • java学习日记20230311-方法重载/可变参数/作用域
    方法重载java中允许同一个类中,多个同名方法的存在,但要求形参列表不一致:System.out.println();减轻了起名的麻烦减轻了记名的麻烦方法名必须相同形参列表必须不同(个......
  • java.lang.IllegalStateException: couldn't determine local port. Please set sprin
    2023-03-12记录一下出现上述问题的原因(1)问题描述:在打包springboot项目时,出现了上述问题(2)产生原因:在打包时,项目的生命周期中没有关闭test(3)解决方法:关闭test,如图,之后......
  • Mybatis-lesson07-lombok-慎用慎用吧-03-12
    第一步:Settings中加入plugins---lombok第二步:maven中导入依赖<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><ve......
  • 2023-03-12 Java中的链表
    链表LinkedListJDK中有标准库实现:java.util.LinkedList,和java.util.List对比,其实两者都可以看做是动态数组链表的特征线性数据结构——链表是真正的动态数据结构:数......
  • Mybatis-lesson06-03-12
    id就是对应的namespace中的方法名;resultType就是sql语句执行的返回值(Classor数据类型)parameterType参数的类型(方法名中的参数),如果为简单的数据类型,默认可以不写。......
  • 2023/03/09刷题
    链接B-EqualRectangles这个题还是比较有意思的因为有4n个,我们可以发现我们如果把序列排序的话必然有两个数字肯定是一模一样的,因为是长方形的两个边,我们还可以发现......
  • 2023/03/11刷题
    A.MinimizingtheString链接A.MinimizingtheString这个题的意思就是删除一个字母让字符串的字典序变得最小,如果字符串的顺序是abcda的话很明显我们要删除d所以我......
  • Mybatis-lesson05-结果映像-第一课:简单的映射-03-12
    第一步:pojo的属性和数据库的列名不一样packagecom.feijian.pojo;publicclassUser{privateintid;privateStringname;privateStringpassword;......
  • P1122 最大子树和
    P1122最大子树和-洛谷|计算机科学教育新生态(luogu.com.cn)题目就是要求:树上点权之和最大的一个连通分量令dp[i]为必须选i节点的情况下,最大的子树点权和则有转移......