본문 바로가기

MyBatis

MyBatis3 typeAlias 사용하기

반응형

이전에 mybatis에서 반환되는 결과값을 자바빈(vo)를 통해 받는법을 설명하였다.


당시에는 resultType에 vo 경로를 풀 경로로 지정했는데, 예를들면 resultType="com.test.vo.TestVo" 이라고 작성했다.

패키지명이 길어지면 경로를 작성하는데 불편함이 따르는데, mybatis에서 제공하는 typeAlias를 이용하면 resultType을 simple하게 작성할 수 있다.

쉽게 설명하자면 vo에 alias(별칭) 이름을 달아주고 mybatis에 설정만 해주면 resultType으로 alias 이름을 그대로 사용할 수 있다.



<select id="getContentsP" parameterType="hashmap" resultType="test">
</select> 




사용법은 크게 2가지 방법이 있다.



클래스 단위 등록


mybatis 설정 파일에 typeAliases 등록한다.

<settings>
...
</settings>

<typeAliases>
    <typeAlias alias="test" type="com.test.vo.TestVo"/>
</typeAliases>






패키지 단위 등록



1. vo에 Alias 작성


package com.test.vo;

import org.apache.ibatis.type.Alias;

@Alias("test")
public class TestVo {
...
}



2. mybatis 설정 파일에 패키지 등록


<settings>
...
</settings>


<typeAliases>
    <package name="com.test.vo" />        
</typeAliases>




나의 경우는 클래스 단위보다 패키지 단위 등록을 선호하는 편이다.

vo 를 작성할경우 각 서비스별로 Vo 를 한쪽으로 모아놓는 편인데, 이 때 패키지 등록으로 한번에 사용할 수 있다.





myBatis에서 제공하는 typeAlias의 장점은 딱 1가지 이다. 타이핑 할 내용이 줄어든다는 점?

무분별하게 typeAlias를 사용하면 유지보수시에 고생할 수도 있으므로 프로젝트별로 typeAlias를 사용할것인지 미리

검토한 후에 사용하는게 좋다. 또한 사용하기로 했다면 네이밍을 어떻게 가져갈 것인가를 미리 정해두는게 좋다.