Mybatis - 分步查询多个参数传递(association与collection))

  • 场景
    在《Mybatis - collection分步查询》与《Mybatis - association分步查询》中,在对子查询进行传参时仅是单个参数传递。在实际开发中,在子查询执行条件里可能存在多参传递,此时将多参封装成Map即可完成多参传递。因为多参是封装成Map的形式进行多参传递,所以参数的取值必须严格遵守Map的形式。

  • 实例
    查询班级名称为XX负责人为YY下的所有学和信息

  • Code
    Student.java

public class Student {
  
  private String id;
  private String name;
  private int age;
  private String sex;
  private String className;
  private String chargeMan;

  public void setName (String name) {
    this.name = name;
  }

  public String getName () {
    return this.name;
  }
}

StudentMapper.java

public interface StudentMapper {
  Student getStudentInfoByClassNameAndChargeMan (String className, String chargeMan);
}

StudentMapper.xml

<select id="getStudentInfoByClassNameAndChargeMan" type="com.cat.pojo.Student">
  SELECT name, age, sex FROM student WHERE class_name = #{className} AND charge_man = #{chargeMan}
</select>

ClassInfo.java

public class ClassInfo {

  private int classCode;
  private String className;
  private String chargeName;
  private List<Student> students;

  public void setClassCode (int classCode) {
    this.classCode = classCode;
  }

  public String getClassCode ()  {
    return this.classCode;
  }
}

ClassInfoMapper.java

public interface ClassInfoMapper {
  ClassInfo getStudentsByClassCode (String classCode) ;
}

ClassInfoMapper.xml

<select id="getStudentsByClassCode" resultMap="classAndStudentMap">
  SELECT class_code, class_name, charge_man
  FROM class
  WHERE class_code = #{class_code}
</select>

<resultMap id="classAndStudentMap" type="com.cat.pojo.ClassInfo">
  <result column="class_code" property="classCode" />
  <result column="class_name" property="className" />
  <result column="charge_man" property="chargeMan" />

  <collection property="students" select="com.cat.mapper.StudentMapper.getStudentInfoByClassNameAndChargeMan " column="{className : class_name, chargeMan : charge_man}"/>
</resultMap>
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. 简介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的...
    笨鸟慢飞阅读 6,280评论 0 4
  • Mybatis介绍 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache...
    day_Sunny阅读 2,912评论 0 6
  • 编写日志输出环境配置文件 在开发过程中,最重要的就是在控制台查看程序输出的日志信息,在这里我们选择使用 log4j...
    我没有三颗心脏阅读 6,925评论 0 33
  • 最近学习MyBatis这个轻量型持久层框架,感觉入门很简单,但是深层次细节配置很多。本篇笔记从 配置文件->例子入...
    Super超人阅读 735评论 0 1
  • 还是很喜欢在夜深人静的时候去怀念过去 跟着记忆的脚步 任思绪尽情穿越 那时的一切都很是亲切难忘 那时的困难现如今都...
    默小香阅读 240评论 0 3

友情链接更多精彩内容