개발 보석함

[Mybatis] id, parameterType, resultType

by hiSon

Mapper XML 파일을 보다보면 아래와 같은 형태로 매핑되어있는 구문을 볼 때가 많다

<mapper namespace="BoardDAO">
    <select id="selectPerson" parameterType="int" resultType="hashmap">
      SELECT * FROM PERSON WHERE ID = #{id}
    </select>
</mapper>

select구문에 있는 namespace와 id, parameterType, resultType이 각각 무엇을 뜻하는지 알아보자.

 

namespace

패키지경로를 포함한 전체 이름을 가진 구문을 구분하기 위해 필수로 사용해야한다.

id

구문을 찾기 위해 사용될 수 있는 네임스페이스내 유일한 구분자이다.

필수속성
parameterType

구문에 전달될 파라미터의 패키지 경로를 포함한 전체 클래스명이나 별칭이다. 기본형이나 VO형태 클래스를 사용한다.

비즈니스 로직으로부터 전달 받은, SQL구문에 사용될 매개변수의 자료형

resultType

구문에 의해 리턴되는 기대타입의 패키지 경로를 포함한 전체 클래스명이나 별칭이다.

비즈니스 로직으로 반환할, 결과값의 자료형

절대 생략할 수 없는 속성, resultMap 속성으로 대체가 가능하다.

select 엘리먼트에서만 사용이 가능하다.

resultMap

외부 resultMap의 참조명이다. 결과맵은 마이바티스의 가장 강력한 기능이다.

 

위와 같은 개념을 가지고 위구문을 해석해보면

BoardDAO가 원하는 인터페이스 저장 패키지 경로이다. (실제로는 패키지 경로로 aaa.bbb.ccc.BoardDAO 이렇게 쓰임)

id는 BoardDAO라는 네임스페이스 안에서 selectPerson이라는 select구문을 찾기위해서 쓰인다.

parameterType은 int라고 되어있기 때문에 int 타입의 파라미터를 가진다.

resultType은 hashmap 이라고 설정되어 있기 때문에 결과 데이터가 Hashmap에 저장된다.


참고

https://mybatis.org/mybatis-3/ko/sqlmap-xml.html

https://velog.io/@krafftdj/Mybatis-parameterType%EC%99%80-resultType%EC%B0%A8%EC%9D%B4

https://moonhy7.tistory.com/entry/Spring-2%EC%9E%A5-Mapper-XML-%ED%8C%8C%EC%9D%BC-%EC%84%A4%EC%A0%95

'💻Java > Mybatis' 카테고리의 다른 글

[Mybatis] Mybatis란  (0) 2023.05.08

블로그의 정보

개발 보석함

hiSon

활동하기