4_多对多关联查询

4_多对多关联查询

根据项目编号查询项目信息,以及参与到该项目之中的所有的员工信息

实体类

  1. @NoArgsConstructor
  2. @AllArgsConstructor
  3. @Data
  4. public class Project implements Serializable {
  5. private Integer pid;
  6. private String pname;
  7. private Integer money;
  8. // 组合一个ProjectRecord对象集合作为属性
  9. private List projectRecords;
  10. }
  11. @Data
  12. @AllArgsConstructor
  13. @NoArgsConstructor
  14. public class ProjectRecord implements Serializable {
  15. private Integer empno;
  16. private Integer pid;
  17. // 组合一个Emp对象作为属性
  18. private Emp emp;
  19. }

接口

  1. package com.msb.mapper;
  2. import com.msb.pojo.Emp;
  3. import com.msb.pojo.Project;
  4. /**
    • @Author: Ma HaiYang
    • @Description: MircoMessage:Mark_7001
  5. */
  6. public interface ProjectMapper {
  7. /**
  8. * 根据项目编号查询一个项目信息及参与该项目的所有员工信息
  9. * @param pid 项目编号
  10. * @return 所有信息封装的Project对象
  11. */
  12. Project findProjectJoinEmpsByPid(int pid);
  13. }

映射文件

  1. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  2. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

测试代码

  1. @Test
  2. public void testManyToMany() throws ParseException {
  3. ProjectMapper mapper = sqlSession.getMapper(ProjectMapper.class);
  4. Project project = mapper.findProjectJoinEmpsByPid(2);
  5. System.out.println(project.getPid());
  6. System.out.println(project.getPname());
  7. System.out.println(project.getMoney());
  8. List projectRecords = project.getProjectRecords();
  9. for (ProjectRecord projectRecord : projectRecords) {
  10. Emp emp = projectRecord.getEmp();
  11. System.out.println(emp);
  12. }
  13. }

posted @ 2023-07-30 23:08  AidenDong  阅读(90)  评论(0)    收藏  举报