본문 바로가기

STUDY/Spring

MyBatis | ResultMap

ResultMap을 사용하면 복잡한 결과를 객체에 간단히 매핑할 수 있다.

사용 방법은 간단하다. User라는 객체가 있을 때 아래와 같이 <resultMap>을 작성하면 된다.

public class User {

    private String name;
       private int age;

}
<resultMap id="userResultMap" type="User">
  <result property="name" column="user_name" />
  <result property="age" column="user_age" />
</resultMap>

<select id="selectUser" resultMap="userResultMap">
    SELECT user_name, user_age
      FROM USERS
</select>

 

만약 클래스간 포함관계, 즉 멤버변수로 다른 객체를 가지고 있다면 <associaion>을 이용해 매핑해 줄 수 있다.
조인을 하거나 보다 복잡한 매핑에서 훨씬 유용하다.

public class Address {
    private String zipcode;
    private String address;
}

public class User {

    private String name;
    private int age;
    private Address address;

}
<resultMap id="userAddressResultMap" type="Address">
      <result property="zipcode" column="ZIPCODE" />
      ...생략
</resultMap>

<resultMap id="userResultMap" type="User">
  <result property="name" column="user_name" />
  <result property="age" column="user_age" />
  <asssociation property="address" resultMap="userAddressResultMap" />
</resultMap>