MyBatis常用级联查询(association,collection)和动态sql(foreach)的简单使用

前言

MyBatis是一个非常优秀的持久层框架,从工作开始基本所有接触的项目使用的都是MyBatis框架,个人感觉它的优点就是轻量级,易配置,sql自由,结果集映射功能强大。除了使用起来舒服,MyBatis的整体设计理念也是很优秀的,清晰的分层设计,对于设计模式的使用,也是值得学习和思考的,虽然自己目前对于其中一些设计理念还难以理解。

当前想详细介绍和总结一下自己常用到的级联查询和动态sql几个场景。虽然比较简单,但是每次写的时候都要查资料,所以自己记录一下。

业务相关数据模型

一个简单的教师-班级-学生 关系数据模型

级联查询示例

  • 业务场景

    根据上述数据模型,需求是查询某个班级的班级名称、班主任名和所有的学生名。

  • 定义返回数据模型

    定义需求所需要数据的VO实体

    public class ClassInfoVO {
        private Long id;
        private String className;
        private String headTeacherName;
        private List<String> studentName;
       
        /**
         *  getter/setter
         */
    }
    
  • 定义mapper接口

    public interface TClassMapper {
        ClassInfoVO getDetail(@Param("id") Long id);
    }
    
  • 映射文件

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper
            PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.learn.mybatiscrud.mapper.TClassMapper">
    
        <resultMap id="classInfoMapper"
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值