Career/Spring Boot

[Spring Boot] ResultMap vs ResultType 차이점

AlexHouse 2022. 7. 20. 11:53
728x90

 

 

resultType 

 - ibatis 에서 resultClass → mybatis 에서 resultType 으로 바뀜

 - 클래스명 전체 또는 alias를 입력

   즉 매핑하려는 자바 클래스의 전체 경로를 입력함

 

 - 예 : com.test.Student 객체로 쿼리 실행 결과값을 받고자 할 때

        <select id="selectTest" resultType="com.test.Student">

   ...

  </select>

 - 예 : int 형 객체로 쿼리 실행 결과값을 받을 때

        <select id="selectTest" resultType="int">

   ...

  </select>

 

 

resultMap

 - resultMap 선언 당시 참조로 사용한 이름을 입력

 - resultType을 이용하면 자동 매핑되기 때문에 편리하지만 제한이 있으나,

   resultMap을 사용하면 개발자가 직접 원하는 POJO 클래스에 매핑 가능

 - 예 : 

 

        <resultMap id="test" type="com.test.Student">

            <result property="name" column="name">

             ....

  </resultMap>

 

  <select id="selectTest" resultMap="test">

   ...

  </select>

 

 

[참조] elena90.tistory.com/116

 

 

⭐⭐⭐⭐

 

ResultMap의 경우

 

<select id="selectList" resultMap="com.example.test.Test">
SELECT * FROM lsmd_adm_sect_umd_11;
</select>

 

이거는 안되지만

 

<select id="selectList" resultType="com.example.test.Test">
SELECT * FROM lsmd_adm_sect_umd_11;
</select>

 

이거는 된다.

 

확실히 되고 안되고가 다르다.

 

 

  • ResultMap은 DB 컬럼명과 DTO의 변수 명이 다를 때 사용한다.
    • resultMap 선언
      • id = 사용할 id 명
      • resultMap type= DTO명 / 알리아스로 사용할거면 사용해도 됨.
      • column = DTO 변수 명
      • property = 데이터베이스 컬럼 명
    • select 문에서 사용
      • resultMap="resultMap의 id명"

 

 

 

 


 

To be continue..

728x90