[Mybatis] 결과 매핑 개념과 예제

결과 매핑은 데이터베이스에서 가져온 결과를 자바 객체에 매핑하는 작업을 의미합니다. MyBatis는 이를 쉽게 수행하기 위해 다양한 방식의 결과 매핑을 지원합니다. 결과 매핑은 주로 매퍼 XML 파일에서 수행되며, 다양한 결과를 객체에 매핑할 수 있습니다. 아래는 MyBatis에서의 결과 매핑의 개념과 예제입니다.

예제: 단순한 결과 매핑

매퍼 XML 파일:

<select id="getBookById" resultType="Book">
  SELECT * FROM books WHERE id = #{id}
</select>` 

이 예제에서는 <select> 쿼리의 결과를 Book 객체에 단순하게 매핑하고 있습니다. resultType 속성을 사용하여 매핑할 객체의 타입을 지정하면 MyBatis가 쿼리 결과를 해당 객체에 매핑합니다.

예제: 결과 매핑과 컬럼 매핑

매퍼 XML 파일:

<select id="getAllAuthors" resultType="Author">
  SELECT id, name AS authorName FROM authors
</select>` 

이 예제에서는 쿼리 결과의 컬럼 이름과 객체의 필드 이름이 다를 때, AS를 사용하여 컬럼 별칭을 부여하고 매핑합니다. authorName 컬럼의 값이 name 필드에 매핑됩니다.

예제: resultMap을 이용한 결과 매핑

매퍼 XML 파일:

<resultMap id="bookResultMap" type="Book">
  <id property="id" column="book_id"/>
  <result property="title" column="book_title"/>
  <result property="author" column="book_author"/>
</resultMap>

<select id="getBooksByAuthor" resultMap="bookResultMap">
  SELECT * FROM books WHERE author = #{author}
</select>` 

이 예제에서는 resultMap을 사용하여 복잡한 결과 매핑을 정의하고 있습니다. idresult 태그를 사용하여 컬럼과 객체의 필드 간의 매핑을 명시하고 있습니다. resultMap을 사용하면 객체와 컬럼 간의 매핑을 세밀하게 제어할 수 있습니다.

결과 매핑을 통해 데이터베이스 결과를 자바 객체에 매핑할 수 있으며, 다양한 방식으로 커스터마이징할 수 있습니다. MyBatis의 결과 매핑 기능을 활용하여 복잡한 쿼리 결과를 효과적으로 자바 객체에 매핑하고 사용할 수 있습니다.