mybatis扩展ResultMap
我们可以从一个<resultMap>中扩展出一个新的<resultMap>,这样原先<resultMap>属性就可以继承过来了。1
2
3
4
5
6
7
8
9
10
11
12
13
14
<resultMap type="Student" id="StudentResult">
<id property="studId" column="stud_id" />
<result property="name" column="name" />
<result property="email" column="email" />
<result property="phone" column="phone" />
</resultMap>
<resultMap type="Student" id="StudentWithAddressResult" extends="StudentResult">
<result property="address.addrId" column="addr_id" />
<result property="address.street" column="street" />
<result property="address.city" column="city" />
<result property="address.state" column="state" />
<result property="address.zip" column="zip" />
<result property="address.country" column="country" />
</resultMap>
这样id为StudentResult的<resultMap>就扩展了id为StudentResult的<resultMap>
如果你指向映射student表中的内容,你可以使用id为StudentResult的<resultMap>
1
2
3
<select id="findStudentById" parameterType="int" resultMap="StudentResult">
SELECT * FROM STUDENTS WHERE STUD_ID=#{studId}
</select>
如果你想要映射Student和Address表中的数据,你可以使用id为StudentWithAddressResult的<resultMap>
1
2
3
4
5
6
7
<select id="selectStudentWithAddress" parameterType="int" resultMap="StudentWithAddressResult">
SELECT STUD_ID, NAME, EMAIL, PHONE, A.ADDR_ID, STREET, CITY,
STATE, ZIP, COUNTRY
FROM STUDENTS S LEFT OUTER JOIN ADDRESSES A ON
S.ADDR_ID=A.ADDR_ID
WHERE STUD_ID=#{studId}
</select>
页:
[1]