#mybatis #mapper.xml 分步查询 与 级联查询 一对多案例

分步查询

<!-- 部门 Mapper XML 文件 -->

<!-- 查询某个部门及其下的所有员工,使用 resultMap 定义嵌套查询 -->
<select id="selectDepartmentWithEmployees" resultMap="DepartmentWithEmployeesResultMap">
    SELECT * FROM department WHERE department_id = #{departmentId}
</select>

<resultMap id="DepartmentWithEmployeesResultMap" type="Department">
    <!-- 部门的属性映射 -->
    <id property="departmentId" column="department_id"/>
    <result property="departmentName" column="department_name"/>

    <!-- 嵌套查询,查询该部门下的所有员工 -->
    <collection property="employees" ofType="Employee" column="department_id" select="selectEmployeesByDepartmentId"/>
</resultMap>
<!-- 员工 Mapper XML 文件 -->

<!-- 查询某个部门下的所有员工 -->
<select id="selectEmployeesByDepartmentId" resultType="Employee">
    SELECT * FROM employee WHERE department_id = #{departmentId}
</select>

级联查询

<!-- 部门 Mapper XML 文件 -->

<!-- 查询某个部门及其下的所有员工,使用级联查询 -->
<select id="selectDepartmentWithEmployees" resultMap="DepartmentWithEmployeesResultMap">
    SELECT d.*, e.* FROM department d
    LEFT JOIN employee e ON d.department_id = e.department_id
    WHERE d.department_id = #{departmentId}
</select>

<resultMap id="DepartmentWithEmployeesResultMap" type="Department">
    <id property="departmentId" column="department_id"/>
    <result property="departmentName" column="department_name"/>

    <!-- 嵌套结果集映射,将员工的属性映射到 employees 集合中 -->
    <collection property="employees" ofType="Employee">
        <id property="employeeId" column="employee_id"/>
        <result property="employeeName" column="employee_name"/>
        <!-- 其他员工的属性映射 -->
    </collection>
</resultMap>

相关推荐

  1. MyBatis——实现查询(一对一,

    2023-12-19 09:34:02       17 阅读
  2. JPA的复杂查询包括多多查询

    2023-12-19 09:34:02       35 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-19 09:34:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-19 09:34:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-19 09:34:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-19 09:34:02       20 阅读

热门阅读

  1. Python基础学习文档(2)

    2023-12-19 09:34:02       33 阅读
  2. NBIOT BC28驱动程序

    2023-12-19 09:34:02       27 阅读
  3. tortoisesvn各版本下载链接

    2023-12-19 09:34:02       51 阅读
  4. tensorflow入门 自定义层

    2023-12-19 09:34:02       39 阅读
  5. 传统服务器和云服务器的区别?

    2023-12-19 09:34:02       38 阅读
  6. Python装饰器

    2023-12-19 09:34:02       41 阅读
  7. Rabbitmq 死信取消超时订单

    2023-12-19 09:34:02       43 阅读
  8. 装饰器设计模式

    2023-12-19 09:34:02       30 阅读
  9. 【uniapp小程序-wesocket的使用】

    2023-12-19 09:34:02       38 阅读