[java] MyBatis의 결과 매핑

MyBatis는 Java 개발자들이 SQL 쿼리와 객체 사이의 매핑을 쉽게 처리할 수 있도록 도와주는 ORM(Object-Relational Mapping) 프레임워크입니다. MyBatis를 이용하면 SQL 쿼리 결과를 자바 객체에 매핑할 수 있으며, 이를 통해 데이터베이스와 자바 객체 간의 변환 작업을 간편하게 처리할 수 있습니다.

결과 매핑의 기본

MyBatis에서 SQL 쿼리의 결과를 자바 객체에 매핑하기 위해서는 간단한 설정이 필요합니다. 먼저, 결과를 매핑할 자바 객체를 정의해야 합니다. 그리고 SQL 쿼리의 실행 결과가 어떤 형태로 반환되는지에 따라 매핑 방법을 결정해야 합니다.

자동 매핑

MyBatis는 SQL 쿼리의 실행 결과와 자바 객체의 필드를 자동으로 매핑할 수 있는 기능을 제공합니다. 이를 위해 SQL 결과의 컬럼 이름과 자바 객체의 필드 이름이 일치해야 합니다. 그렇게 되면 MyBatis가 자동으로 매핑 작업을 처리해주며, 별도의 추가 설정이 필요하지 않습니다.

public class User {
    private int id;
    private String name;
    // getter, setter 메소드 생략
}

위와 같이 User 클래스를 정의했을 때, SQL 쿼리 결과의 컬럼이 idname인 경우 자동으로 매핑됩니다.

수동 매핑

때로는 SQL 쿼리의 결과와 자바 객체의 구조가 일치하지 않는 경우가 있습니다. 이때에는 수동으로 매핑해주어야 합니다. MyBatis에서는 resultMap을 이용하여 수동으로 매핑 설정을 할 수 있습니다.

<resultMap id="userResultMap" type="User">
    <id property="id" column="user_id"/>
    <result property="name" column="user_name"/>
</resultMap>

위의 예제에서는 resultMap을 이용하여 userResultMap이라는 매핑 설정을 정의한 것입니다. 이를 통해 SQL 쿼리 결과의 user_id 컬럼을 id 필드에, user_name 컬럼을 name 필드에 매핑할 수 있습니다.

결과 매핑을 통해 MyBatis를 효과적으로 활용하여 SQL 쿼리 결과를 자바 객체에 매핑하는 방법에 대해 알아보았습니다.

MyBatis 공식 문서