Mybatis框架中resultType和resultMap的区别

resultTyperesultMap 是 MyBatis 框架中用于处理查询结果映射的两种方式。

   1. resultType

  • 定义resultType 是最简单的结果映射方式,直接将查询结果映射为指定的 Java 类。
  • 用法:适用于数据库表字段名和 Java 类字段名一致的情况。
  • 优点
    • 简单易用,代码简洁。
    • 适合表字段和 Java 对象属性一一对应的情况。
  • 缺点
    • 当数据库表字段和 Java 对象字段名不一致时,需要使用别名来处理。
  • 无法处理复杂的映射关系(如嵌套对象、多对一、一对多等情况)。
    <select id="selectUser" resultType="com.example.User">
        SELECT id, name, age FROM users
    </select>
    

    查询的结果将自动映射到 User 类的 id, name, age 字段上

  • 2. resultMap

  • 定义resultMap 是 MyBatis 提供的更为灵活的结果映射方式,可以用来处理复杂的映射关系。
  • 用法:适用于字段名和 Java 类属性名不一致,或者需要进行复杂映射的情况(如嵌套对象、关联查询等)。
  • 优点
    • 支持复杂的映射,比如字段名与属性名不一致、嵌套对象映射、关联查询等。
    • 更具可读性,能够清晰定义每个字段的映射关系。
  • 缺点
    • 配置较为复杂,需要手动指定每个字段的映射。
    • <resultMap id="userResultMap" type="com.example.User">
          <id property="id" column="user_id" />
          <result property="name" column="user_name" />
          <result property="age" column="user_age" />
      </resultMap>
      
      <select id="selectUser" resultMap="userResultMap">
          SELECT user_id, user_name, user_age FROM users
      </select>
      

resultMap 允许将数据库表中的 user_iduser_nameuser_age 映射到 Java 对象 Useridnameage 属性上。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

KNeeg_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值