mybatis中resulttype和resultmap有什么区别

avatar
作者
猴君
阅读量:0

在MyBatis中,resultType和resultMap都用于指定查询结果的映射方式,但有以下区别:

  1. resultType:resultType用于指定查询结果的映射类型。它可以是Java基本类型、JavaBean或集合类型。当查询结果只有一个字段时,可以使用resultType指定映射类型。例如:

    <select id="getUserName" resultType="java.lang.String">   SELECT name FROM user WHERE id = #{id} </select> 

    当查询结果为多个字段时,无法使用resultType进行映射,需要使用resultMap。

  2. resultMap:resultMap用于定义查询结果的映射规则。它可以自定义映射规则,将查询结果的字段与Java对象的属性进行映射。resultMap需要在Mapper XML文件中进行定义。例如:

    <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="getUser" resultMap="userResultMap">   SELECT id AS user_id, name AS user_name, age AS user_age FROM user WHERE id = #{id} </select> 

    上述示例中,resultMap定义了一个id为userResultMap的映射规则,指定了查询结果字段user_id、user_name和user_age与User对象的id、name和age属性的映射关系。在select语句中使用resultMap属性引用了这个映射规则。如果查询结果有多个字段,且需要进行复杂的映射关系处理时,可以使用resultMap。

综上所述,resultType适用于简单的查询结果映射,而resultMap适用于复杂的查询结果映射。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!