详解Mybatis中的resultType和resultMap

本文详细介绍了Mybatis中resultType和resultMap的使用,resultType用于简单类型的返回或实体类属性与数据库列名一致的情况,而resultMap则用于解决属性与列名不匹配的问题,提供更灵活的映射配置。通过示例展示了resultMap的配置方法,强调了两者在处理查询结果映射上的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

resultType和resultMap是Mybatis基于xml配置开发过程中sql语句所在标签的一种属性,它们的特性如下:

1. resultType:该属性是为了配置mybatis查询的返回结果类型,如果返回值类型是整型数据,该属性处可以配置int,如查询数量:
    <select id="findTotal"  resultType="int">
        -- parameterType 表示参数类型
        select count(users) from user;
    </select>

如果查询的返回值类型是String,resultType属性处就应该配置为String。
另外,如果查询结果为对象,并且实体类属性的名称可以和数据库中表的列名相互对应,在resultType属性处可以直接填写实体类所在包的位置,例如:

    <select id="findAll" resultType="domain.User">
        select * from user;
    </select>

实体类所在的包如下图所示
在这里插入图片描述

2.resultMap:该属性也是为了配置mybatis查询的返回结果类型,不过该属性主要还是为了解决实体类属性名称和数据库表的列名不匹配的问题,言外之意就是如果我们所写的实体类的属性的名称和数据库表的列名不能一一对应,那么我们使用mybatis进行查询时就会报错,或者查出空的结果。所以,resultMap属性就是为了解决实体类属性和数据库列名不匹配的查询。

resultMap的使用方法:
在mapper标签下配置resultMap标签

    <resultMap id="userMap" type="domain.User">
        <!--    主键字段的对应,property为实体类属性名,users为数据库字段名-->
        <id property="实体类主键属性名" column="数据库表主键列名"></id>
        <!--    非主键的约束-->
        <result property="实体类属性名" column="数据库表列名"></result>
        <result property="实体类属性名" column="数据库表列名"></result>
        <result property="实体类属性名" column="数据库表列名"></result>
        <result property="实体类属性名" column="数据库表列名"></result>
        <result property="实体类属性名" column="数据库表列名"></result>
        <result property="实体类属性名" column="数据库表列名"></result>
    </resultMap>
      <select id="findAll" resultMap="userMap">
        select * from user;
    </select>
3.resultType和resultMap的区别

resultType和resultMap在使用上最大的区别就是resultType使用时实体类的属性名要和数据库表的列名一一对应,resultMap是mybatis框架为了解决实体类属性和数据库表列名不能对应上而创建的一种解决方案。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xjitcm

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值