Running MyBatis generator with Maven

JOOQ의 codegen을 설정하여 사용하며, 갑자기 MyBatis에도 generator가 있다는 생각이 문득 떠올랐다.
평소에는 그냥 지나쳤는데, 개인적으로는 MyBatis도 꽤 좋은 ORM(?)이라고 생각해서 한번 설정을 해보기로 했다.
MyBatis는 우리나라에서 정말 많은곳에서 사용되고 있다. 생각보다 MyBatis는 계속 해서 진화하고 있다. 마지막 업데이트가 18년 7월초, 약 2달여전인걸로 보면 계속해서 업데이트가 되고 있다고 해도 지나치지 않을 것이다.
MyBatis Generator는 MyBatis를 사용하면서 작성하게 되는 Model(DTO,VO)과 DAO와 Mapper를 DB 정보를 연결해 자동으로 Gen해주는 라이브러리이다.
해당 jar를 다운로드해서 설정파일(generatorConfig.xml)을 작성하여 stand alone으로 command line에서 실행할 수도 있다.
이번에는 가장 많이 사용하는 빌드툴인 Maven에서 설정하는 방법을 포스팅해보려고 한다.
프로젝트의 pom.xml에 아래 설정을 추가한다.
현재 최신의 generator 버전은 1.3.7이다.
configuration 엘리먼트 아래로 설정값을 추가할 수 있고 이곳에서 확인할 수 있다.
configurationFile 값은 generatorConfig.xml 파일의 위치를 입력하는 곳이고, 기본적으로 설정하지 않아도 해당 값이 설정된다.
overwrite값이 true이면 generate를 할때마다 덮어씌우고, false이면 추가적으로 파일을 생성한다.
그리고 generate할때 DB를 연결하기 위해 필요한 jdbc jar에 대한 dependency를 추가한다.
필자는 mariadb를 사용하고 있어서 mariadb-java-client를 추가했다.
이제 generatorConfig.xml 파일을 작성해서 설정된 위치에 넣으면 끝이다.
기본적인 generatorConfig.xml 파일의 구조는 이곳에서 확인할 수 있다.
필자가 작성한 파일은 아래와 같다.
파일을 작성하고 pom.xml 파일 위치에서 command에 아래 명령을 실행하면 실행된다.
mvn mybatis-generator:generategenerate된 파일을 살펴보면, 대략적으로 MyBatis를 개발한 개발자가 MyBatis를 어떻게 사용하길 바라는지 대략(?) 알 수 있다.
MyBatis Generator를 사용해서 DB Table의 컬럼 DTO 정도만 뽑아서 참조해 사용하기만 해도 꽤 생산성이 올라갈 수 있을 것이다.
JPA 혹은 JOOQ 덕에 MyBatis 사용에 대한 안좋은 인식이 있는데, 필자는 MyBatis는 현재도 발전하고있고, 충분히 좋은 기술이라고 생각한다.