ResultMap和ResultType的区别

本文详细比较了resultmap与resultType在MyBatis中的区别,包括对象映射、描述方法和适用场景。resultMap用于列名和属性名不一致的情况,适合一对一表连接;resultType则针对单表查询,且列名与属性名匹配。

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

resultmap与resulttype的区别为:对象不同、描述不同、类型适用不同

一、对象不同

1、resultmap:resultMap如果查询出来的列名和pojo的属性名不一致,通过定义一个resultMap对列名和pojo属性名之间作一个映射关系。

2、resultType:resultType使用resultType进行输出映射,只有查询出来的列名和pojo中的属性名一致,该列才可以映射成功。

二、描述不同

1、resultmap:resultMap对于一对一表连接的处理方式通常为在主表的pojo中添加嵌套另一个表的pojo,然后在mapper.xml中采用association节点元素进行对另一个表的连接处理。

2、resulTtype:resultType无法查询结果映射到pojo对象的pojo属性中,根据对结构集查询遍历的需要选择使用resultType还是resultMap。适用于单表查询。

三、类型适用不同

1、resultmap:mybatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap。

2、resulttype:resultType是直接表示返回类型的,而resultMap则是对外部ResultMap的引用,但是resultType跟resultMap不能同时存在。

在实际项目中,我用到了这两种方式按我的理解来说就是,基本类型,和你已经定义好的vo类,实体类,可以直接使用resulttype接收,但是你在表中查询的列名,想查询出来之后换一个名字,或者只返回部分特定的信息,这个时候你需要自定义一个resultmap,在map中一对一的进行映射。最后返回的就是这部分数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值