溫馨提示×

mybatis中resulttype和resultmap有什么區別

小億
111
2024-01-16 10:09:56
欄目: 編程語言

在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適用于復雜的查詢結果映射。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女