resultMap 主要是 mybatis 帮助从数据库中获取列数据后封装成对象。

1 一对一映射

比如每位学生有一个地址。

public class Address
    {
        private Integer addrId;
        private String street;
        private String city;
        private String state;
        private String zip;
        private String country;
        // setters & getters
    }

public class Student
    {
        private Integer studId;
        private String name;
        private String email;
        private PhoneNumber phone;
        private Address address;
        //setters & getters
    }

我们根据学生 ID 选择学生信息

方法一:使用句点符号表示嵌套对象的引用,

Student 的 address 属性使用了圆点记法被赋上了 address 对应列的值。

<resultMap type="Student" id="StudentWithAddressResult">
<id property="studId" column="stud_id" />
<result property="name" column="name" />
<result property="email" column="email" />
<result property="phone" column="phone" />
<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>
<select id="selectStudentWithAddress" parameterType="int"
resultMap="StudentWithAddressResult">
SELECT STUD_ID, NAME, EMAIL, 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>
View Code

相关文章: