MyBatis中怎么用ResultMap處理查詢(xún)結(jié)果的復(fù)雜映射

小億
84
2024-05-08 13:37:55

在MyBatis中,可以使用ResultMap來(lái)處理查詢(xún)結(jié)果的復(fù)雜映射。

首先,在MyBatis的mapper文件中定義一個(gè)ResultMap,指定查詢(xún)結(jié)果的映射規(guī)則。例如:

<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>

以上定義了一個(gè)名為userMap的ResultMap,將查詢(xún)結(jié)果映射到User對(duì)象中,其中User對(duì)象包含一個(gè)Role對(duì)象作為關(guān)聯(lián)屬性。

然后在查詢(xún)語(yǔ)句中引用這個(gè)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>

在以上查詢(xún)語(yǔ)句中,使用了userMap來(lái)指定查詢(xún)結(jié)果的映射規(guī)則,將查詢(xún)結(jié)果映射到User對(duì)象中。

通過(guò)以上步驟,就可以使用ResultMap來(lái)處理查詢(xún)結(jié)果的復(fù)雜映射。

0