MyBatis Insert 구문에서 resultType이 사용되지 않는 이유
KUKJIN LEE • 5개월 전 작성
누군가에게는 당연한 이야기겠지만, Java를 처음 접한 누군가에게..
왜 MyBatis의 resultType은 Select 구문에서만 사용할까요?
MyBatis에서 resultType
은 주로 select
구문에서 사용됩니다. 이는 select
구문이 데이터베이스로부터 결과 집합을 반환하기 때문에, 반환된 데이터를 객체로 매핑하는 데 필요합니다. 반면, insert
, update
, delete
구문은 데이터베이스의 상태를 변경하며, 별도의 결과 집합을 반환하지 않습니다. 따라서 이러한 구문에서는 resultType
을 지정할 필요가 없습니다. 대신, MyBatis는 수행된 행(row)의 수를 반환합니다.
MyBatis에서의 올바른 Insert 구문 매퍼 정의 예제
<insert id="insertUser" parameterType="HashMap">
INSERT INTO users (username, password, email)
VALUES (#{username}, #{password}, #{email})
</insert>
이 insert
구문은 데이터베이스에 새로운 사용자 데이터를 삽입하며, 성공적으로 수정된 행(row)의 수를 반환합니다. 따라서 resultType
은 필요하지 않습니다.
핵심 요약
resultType
사용:select
구문에서만 사용- 데이터 반환:
select
는 결과 집합 반환,insert
/update
/delete
는 행(row)의 수 반환 - 매퍼 예제:
insert
구문에서resultType
지정 불필요
MyBatis의 기본 개념을 이해하면 효율적인 매퍼 구성을 할 수 있습니다.