在MyBatis中,可以使用ResultMap來處理查詢結果的復雜映射。
首先,在MyBatis的mapper文件中定義一個ResultMap,指定查詢結果的映射規則。例如:
<resultMap id="userMap" type="User">
<id column="id" property="id"/>
<result column="username" property="username"/>
<result column="password" property="password"/>
<association property="role" javaType="Role">
<id column="role_id" property="id"/>
<result column="role_name" property="name"/>
</association>
</resultMap>
以上定義了一個名為userMap的ResultMap,將查詢結果映射到User對象中,其中User對象包含一個Role對象作為關聯屬性。
然后在查詢語句中引用這個ResultMap:
<select id="getUserById" resultMap="userMap">
SELECT u.id, u.username, u.password, r.id as role_id, r.name as role_name
FROM user u
INNER JOIN role r ON u.role_id = r.id
WHERE u.id = #{id}
</select>
在以上查詢語句中,使用了userMap來指定查詢結果的映射規則,將查詢結果映射到User對象中。
通過以上步驟,就可以使用ResultMap來處理查詢結果的復雜映射。