[Mybatis] MyBatis-Generator 개념과 예제

MyBatis Generator는 데이터베이스 테이블의 스키마를 기반으로 MyBatis 매퍼와 자바 객체 클래스를 자동으로 생성해주는 도구입니다. 이를 통해 데이터베이스 테이블과 관련된 코드를 자동으로 생성하여 개발 생산성을 높일 수 있습니다. MyBatis Generator는 XML 설정 파일을 통해 동작하며, 데이터베이스와 매퍼 코드의 연결을 자동으로 처리합니다.

예제: MyBatis Generator 사용

  1. MyBatis Generator를 사용하기 위해 먼저 Maven 또는 Gradle 프로젝트에 의존성을 추가합니다.

  2. generatorConfig.xml 파일을 생성하여 데이터베이스 연결 정보와 코드 생성 설정을 구성합니다.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
  <context id="mybatisGenerator" targetRuntime="MyBatis3Simple" defaultModelType="flat">
    <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/mydb" userId="root" password="password"/>
    
    <javaModelGenerator targetPackage="com.example.model" targetProject="src/main/java"/>
    <sqlMapGenerator targetPackage="com.example.mapper" targetProject="src/main/resources"/>
    <javaClientGenerator type="XMLMAPPER" targetPackage="com.example.mapper" targetProject="src/main/java"/>
    
    <table tableName="books"/>
  </context>
</generatorConfiguration>` 

위의 예제에서는 generatorConfig.xml 파일을 생성하고 데이터베이스 연결 정보와 코드 생성 설정을 구성하였습니다. jdbcConnection에서 데이터베이스 연결 정보를 설정하고, javaModelGenerator, sqlMapGenerator, javaClientGenerator에서 각각 자바 객체, 매퍼 XML, 매퍼 인터페이스를 생성할 위치와 패키지를 설정합니다. table 태그로 특정 테이블을 선택하여 코드를 생성할 수 있습니다.

  1. MyBatis Generator를 실행합니다. 커맨드 라인에서 아래 명령을 실행하거나, IDE 내에서 플러그인을 사용하여 실행할 수 있습니다.
java -jar mybatis-generator-core-x.x.x.jar -configfile generatorConfig.xml -overwrite` 

위의 예제에서 mybatis-generator-core-x.x.x.jar는 MyBatis Generator의 JAR 파일을 나타내며, -configfile 옵션으로 설정 파일을 지정하고 -overwrite 옵션으로 기존 파일을 덮어쓸 수 있도록 합니다.

실행 후 지정된 위치에 자동으로 매퍼 XML 파일과 자바 객체 클래스가 생성됩니다. 이를 통해 데이터베이스 테이블과 관련된 코드를 자동으로 생성할 수 있습니다.