본문 바로가기
Java/Mybatis

[Mybatis] 마이바티스 컬럼 자동 매핑하기 (auto mapping)

by 산코디 2023. 2. 21.
[Mybatis] 마이바티스 컬럼 자동 매핑하기 (auto mapping)



안녕하세요.
오늘은 마이바티스에서 칼럼 자동 매핑 처리하는 방법에 대해서 포스팅하려고 합니다. 마이바티스를 개발하면서 resultType을 이용해서 결과 데이터를 map이나 class로 매핑시켜야 하는데, 간혹 resultMap을 이용해서 결과 데이터를 반환해야 하는 경우가 있습니다. 그런 상황에서 칼럼 수가 많으면 매핑시켜줘야 하는 칼럼도 많아 생각보다 작업시간이 길어지는 경우가 있습니다. 그럴 때 간단하게 자동 매핑 처리를 해서 결과 데이터를 반환할 수 있도록 예제를 통해서 정리해 보도록 하겠습니다.


resultType과 resultMap
resultType: 칼럼 정보를 작성한 타입에 맞는 클래스에 자동 매핑
resultMap: 칼럼 정보를 xml에 정의한 규칙에 의해 칼럼 매핑

1. resultMap 수동 매핑

<mapper namespace="com.demo.system.model.mapper.TestMapper">

	<!-- Member 목록 조회 mapper -->
	<select id="selectMemberList" resultMap="memberMap">
		SELECT
			Idx		,
			Name	,
			EmpNo	,
			Age
		  FROM Member
		 WHERE Age = #{age}
	</select>
	
	<resultMap type="member" id="memberMap">
		<id 	column="Idx" 	property="idx"/>
		<result column="Name" 	property="name"/>
		<result column="EmpNo"  property="empNo"/>
		<result column="Age" 	property="age"/>
	</resultMap>
</mapper>

위의 예제 소스 코드는 resultMap을 일반적으로 사용하는 케이스입니다.
resultMap의 id값과 select절의 resultMap값이 연동이 되고, select 태그에서 조회한 결과 값의 칼럼 정보를 resultMap에 매핑을 해주고 있습니다. 위의 방식은 일반적이며, 칼럼마다 class의 어떤 변수와 매핑이 되는지 직관적으로 확인할 수 있습니다.
위의 방식은 그렇게 문제 되는 방식은 아니지만 칼럼의 수가 많아지는 경우에는 칼럼 매핑을 해주는 것만 해도 상당한 시간이 소요됩니다.
그래서 위의 방식을 간단하게 처리하기 위해 자동 매핑처리를 해주는 것이 좋습니다.
다음 예제 소스 코드를 보도록 하겠습니다.


반응형

2. resultMap 자동 매핑

<mapper namespace="com.demo.system.model.mapper.TestMapper">

	<!-- Member 목록 조회 mapper -->
	<select id="selectMemberList" resultMap="memberMap">
		SELECT
			Idx		,
			Name	,
			EmpNo	,
			Age
		  FROM Member
		 WHERE Age = #{age}
	</select>
	
	<resultMap type="member" id="memberMap" autoMapping="true">
		<id 	column="Idx" 	property="idx"/>
	</resultMap>
</mapper>

위의 예제는 자동 매핑 처리를 한 방식입니다.
수동 처리로 칼럼 하나하나 매핑 처리를 했을 때 보다 훨씬 간단해졌습니다.
자동 매핑 처리를 해주기 위해선 resultMap 태그에 autoMapping="true" 설정을 추가해 줘야 합니다. 그리고 데이터의 인덱스 칼럼이 되는 칼럼을 id 태그로 잡아주게 되면 끝입니다!
방법은 정말 간단하지만 위와 같은 방식으로 작업을 하게 되면 업무 생산성이 많이 올라갑니다. 하지만 개발 환경에 따라 위와 같은 방식을 선호하지 않는 곳도 있으니 상황에 맞춰서 사용하시면 됩니다!


마무리

오늘은 마이바티스의 resultMap 자동 칼럼 매핑 처리를 하는 방법에 대해서 정리해 봤습니다.
위에서 설명한 것처럼 사용 방법은 정말 간단하며, 효과는 상당히 좋습니다. 하지만 위와 같은 방식은 선호하지 않는 환경도 있기 때문에 상황에 맞춰서 사용하는 것이 좋습니다.

그러면 오늘도 저의 작고 소중한 글을 읽어주셔서 감사합니다.


반응형