[Mybatis] 오프라인 컴파일(Compile Ahead of Time) 예제
MyBatis에서 오프라인 컴파일(Compile Ahead of Time)을 사용하려면 SQL 매퍼 파일을 미리 컴파일하여 Java 코드로 변환해야 합니다. 이를 위해 mybatis-generator
플러그인을 사용할 수 있습니다. 아래는 오프라인 컴파일 예제입니다.
예제: 오프라인 컴파일 설정
-
MyBatis Generator 설치:
MyBatis Generator를 프로젝트에 추가합니다. Maven을 사용하는 경우
pom.xml
파일에 다음 의존성을 추가합니다.
<dependencies>
<!-- 다른 의존성 ... -->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.4.0</version> <!-- 최신 버전 사용 가능 -->
</dependency>
</dependencies>`
-
generatorConfig.xml
파일 생성:프로젝트 루트에
generatorConfig.xml
파일을 생성하여 MyBatis Generator를 설정합니다. 이 파일에서는 어떤 SQL 매퍼 파일을 컴파일할지, 어떤 패키지에 결과 파일을 생성할지 등을 정의합니다.
<?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="example" targetRuntime="MyBatis3">
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/mydatabase"
userId="your_username"
password="your_password" />
<!-- 컴파일할 SQL 매퍼 파일 설정 -->
<javaModelGenerator targetPackage="com.example.model" targetProject="src/main/java" />
<sqlMapGenerator targetPackage="com.example.mapper" targetProject="src/main/resources" />
<javaClientGenerator targetPackage="com.example.mapper" targetProject="src/main/java" type="XMLMAPPER" />
<table tableName="users" />
</context>
</generatorConfiguration>`
-
Java 코드에서 사용:
MyBatis Generator를 실행하여 SQL 매퍼 파일을 컴파일한 Java 파일을 생성합니다.
public class Main {
public static void main(String[] args) throws Exception {
List<String> warnings = new ArrayList<>();
boolean overwrite = true;
File configFile = new File("path/to/generatorConfig.xml"); // generatorConfig.xml 파일 경로 설정
ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config = cp.parseConfiguration(configFile);
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
myBatisGenerator.generate(null);
System.out.println("Generated successfully.");
}
}`
-
오프라인 컴파일 실행:
Java 코드를 실행하여 MyBatis Generator를 실행하고 SQL 매퍼 파일을 컴파일한 Java 파일을 생성합니다.
이제 SQL 매퍼 파일이 Java 파일로 컴파일되었습니다. 이 방법을 사용하면 미리 컴파일된 SQL 쿼리를 사용하여 MyBatis를 효율적으로 사용할 수 있습니다.