STUDY/Spring
MyBatis | ResultMap
개미606
2022. 3. 15. 17:35
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>