ResultMap和ResultType

ResultMap

ResultMap用于多表查询时,指定各表的查询结果与返回类型各字段之间的匹配关系。

测试类如下:

@Data
public class Student {
    private String name;
    private int schoolId;
    private School school;
}
@Data
public class School {
    private int id;
    private String name;
}

xml文件如下:

<resultMap id="testMap" type="Student">
    <!-- 绑定返回类的属性 -->
    <result property="name" column="student_name"/>
    <result property="schoolId" column="school_id"/>
    <!-- 绑定内部类的属性 -->
    <association property="school" javaType="School">
        <result property="id" column="school_id"/>
        <result property="name" column="school_name"/>
    </association>
</resultMap>
<select id="test" resultMap="testMap">
    select school.id school_id, student.name student_name, school.name school_name
    from student
    left join school
    on student.school_id=school.id
</select>

测试代码

void test() {
    Student student = testMapper.test();
    System.out.println(student);
}

结果:Student(name=test_student, schoolId=1, school=School(id=1, name=test_school))

ResultType

只能按字段名匹配,适用于单表查询

xml:

<select id="test" resultType="Student">
    select name, school_id
    from student
</select>

测试代码同上,结果:Student(name=test_student, schoolId=1, school=null)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值