MyBatis | 검색 결과를 임의의 Java 오브젝트에 매핑 | 클래스로 매핑 정의

코드

sample_mapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="sample.mybatis">
  <resultMap id="testTableResultMap" type="sample.mybatis.TestTable">
    <id property="id" column="id" />
    <result property="value" column="value" />
  </resultMap>

  <select id="selectTest" resultMap="testTableResultMap">
    select * from test_table
  </select>
</mapper>

설명

  • <resultMap> 태그를 사용하여 검색 결과와 Java 클래스 간의 매핑을 정의할 수 있다.
  • <id> 태그로 식별자 속성을 정의한다.
    • 식별자 속성은 인스턴스를 식별하는데 사용하는 속성을 말한다.
    • 식별자 속성을 지정해 두는 것으로, 캐시 및 JOIN 매핑 때 성능이 향상 되는거 같다.
    • property 속성에 Java 측의 속성(필드) 이름을 지정한다.
    • column 속성에 데이터베이스 측의 열 이름을 지정한다.
  • <result> 태그로 각 열의 매핑을 정의한다.
    • 이쪽도 property와 column 이름을 매핑한다.
  • <resultMap>의 id 속성으로 매핑을 고유하게 식별하는 이름을 정의한다 (testTableResultMap).
    • 이 이름을 <select> 태그의 resultMap 속성에 지정한다.