清晰的解释 mybatisplus中resultType与resultMap的区别

resultType适用于简单查询结果的映射,直接将列名与JavaBean属性对应。resultMap则更为灵活,能处理复杂映射,包括自定义类型转换和额外查询。它允许明确指定列与属性的映射,以及进行更复杂的字段处理。
摘要由CSDN通过智能技术生成

结论:resultType与resultMap都可以用于接收mybatisplus中select的查询结果,resultType适合接收简单的查询结果集,而resultMap则可以胜任接收复杂的查询结果集

resultType

resultType属性可以指定一个JavaBean,这个JavaBean的属性名与查询结果的列名相对应,MyBatis可以自动为每个属性注入对应的值,从而构建一个完整的JavaBean对象作为查询结果。例如:

<select id="selectUserById" resultType="com.example.User">
  SELECT * FROM user WHERE id = #{id}
</select>

这里的resultType指定了查询结果是一个com.example.User对象,而每个User对象的属性会依次与查询结果的列名相对应。

resultMap

resultMap则更加灵活,能够实现复杂的结果映射。在resultMap中,我们可以通过定义标签来明确指定如何将查询结果的列映射到JavaBean的属性上,可以进行任意的转换和计算操作。例如:

<resultMap id="userMap" type="com.example.User">
  <result property="id" column="user_id" />
  <result property="name" column="user_name" />
  <result property="age" column="user_age" />
  <result property="address" column="user_address" />
  <result property="phone" column="user_phone"
      jdbcType="VARCHAR" javaType="com.example.PhoneNumber"
      select="selectPhoneNumberById" />
</resultMap>

<select id="selectUser" resultMap="userMap">
  SELECT user_id, user_name, user_age, user_address, user_phone
  FROM users WHERE id = #{id}
</select>

这里的resultMap中,除了基本的属性映射之外,Phone字段还使用了自定义的类型转换方式,并调用了selectPhoneNumberById方法进行属性的填充。

综上所述,resultType和resultMap都是用于MyBatis结果集类型映射的属性。其中,resultType适用于简单的结果映射,而resultMap则更加灵活,可以实现任何复杂的结果映射。

resultTyperesultMapMyBatis用于查询结果的映射,但它们有一些区别resultType用于直接表示返回类型,指定一个Java类作为返回结果的类型。这意味着查询结果会被转换为指定的Java类的对象。而resultMap是对外部ResultMap的引用,可以引用一个已经定义好的ResultMap。这个ResultMap定义了查询结果与Java类之间的映射关系,包括列名与属性名的对应关系、类型转换等。可以说,resultType是直接指定返回类型,而resultMap是引用一个已有的映射关系。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [resultMapresultType区别](https://blog.csdn.net/LMY0210/article/details/128238290)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [resulttyperesultMap区别详解](https://blog.csdn.net/qq_26893841/article/details/127883346)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [MyBatis关于resultTyperesultMap区别介绍](https://download.csdn.net/download/weixin_38717031/12793901)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值