mybatis中resultType和resultMap的区别及联系

在mybatis的mapper.xml中,我们需要定义查询结果返回类型,常见的属性有resultType和resultMap,那么这两者有什么区别和联系呢。

 实体类student类代码如下:

package com.example.demo.entity;

public class student {

    private String studentId;
    private String stringName;

    public void setStudentId(String studentId) {
        this.studentId = studentId;
    }

    public void setStringName(String stringName) {
        this.stringName = stringName;
    }

    public String getStudentId() {
        return studentId;
    }

    public String getStringName() {
        return stringName;
    }
}

1:若是实体类的字段和数据库的字段一一对应,则可直接用resultType,resultType的值为返回的对象,写成如下这样:

mapper namespace="com.example.demo.DAO.HelloWorldDAO">
    <select id="query"  resultType="student">
        select * from student
    </select>
</mapper>

  启动项目,访问地址,返回结果如下:

2:如果数据库字段和实体类字段不是一一对应的,则需要采用resultMap属性,两者字段之间进行映射,写法如下:

<?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.example.demo.DAO.HelloWorldDAO">
    <select id="query"  resultMap="studentResult">
        select * from student
    </select>

    <resultMap type="student" id="studentResult">
        <result property="studentId" column="student_id"/>
        <result property="studentName" column="student_name"/>
    </resultMap>
</mapper>

启动项目,访问地址,返回结果如下:

总结:resultType和resultMap都是返回对象的,resultType实体类字段必须和数据库字段一一对应,而resultMap如果两者字段名不同,则可通过定义resultMap进行字段的映射。所以,一般开发中用的resultMap比较多,因为可以自定义,所以用起来比较方便。

知识就是要不断的学习,不断的复习,才会记忆的更加的深刻。加油,美好的风景一直在路上!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值