[Eclipse] 이클립스 Mybatis Generator 1.4.2 버전으로 구버전 사용하기

hyoogii·2024년 7월 4일

환경설정

목록 보기
1/2
post-thumbnail


최근에 노트북을 새로 받고 기존에 설정 했던 환경설정을 다 해줬으나, Mybatis Generator 만 설정이 안되어서 고생하다가 방법을 찾아 이렇게 기록해본다.

현재 프로젝트가 1.3.7 버전을 사용하고 있는데, 설치도 안되고 실행도 안되고 고생을 좀 했다.
해결방법은 아래와 같다.

먼저 pom.xml에 Mybatis Generator를 추가 해준다.

<dependency>
			<groupId>org.mybatis.generator</groupId>
			<artifactId>mybatis-generator-core</artifactId>
			<version>1.4.2</version>
		</dependency>

Eclipse Marketplace 에서 Mybatis Generator 1.4.2 ver 다운받는다.

generatorConfig.xml 파일을 생성해준다. 위치는 아무곳이나 상관없다.
나는 프로젝트에 이미 생성되어있는 Config.xml 파일이 있어 생성하지 않았다.

그리고 추가적으로 CustomColumnNamePlugin.java 파일과 CustomJavaTypeResolver.java 파일을 패키지 안에 생성해주었다.

**CustomColumNamePlugin.java

package CustomColumNamePlugin.java의 경로.ext.etc;

import java.util.List;
import org.mybatis.generator.api.IntrospectedColumn;
import org.mybatis.generator.api.IntrospectedTable;
import org.mybatis.generator.api.PluginAdapter;
import org.mybatis.generator.api.dom.java.Field;
import org.mybatis.generator.api.dom.java.TopLevelClass;

public class CustomColumnNamePlugin extends PluginAdapter {
    @Override
    public boolean validate(List<String> warnings) {
        return true;
    }

    @Override
    public boolean modelFieldGenerated(Field field, TopLevelClass topLevelClass, IntrospectedColumn introspectedColumn, IntrospectedTable introspectedTable, ModelClassType modelClassType) {
        field.setName(introspectedColumn.getActualColumnName());
        return true;
    }
}

**CustomJavaTypeResolver.java

package CustomJavaTypeResolver.java의 경로.ext.etc;

import org.mybatis.generator.api.IntrospectedColumn;
import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType;
import org.mybatis.generator.internal.types.JavaTypeResolverDefaultImpl;

import java.sql.Types;

public class CustomJavaTypeResolver extends JavaTypeResolverDefaultImpl {

    @Override
    public FullyQualifiedJavaType calculateJavaType(IntrospectedColumn introspectedColumn) {
        FullyQualifiedJavaType answer;
        JdbcTypeInformation jdbcTypeInformation = typeMap.get(introspectedColumn.getJdbcType());

        if (jdbcTypeInformation != null) {
            if (introspectedColumn.getJdbcType() == Types.BIGINT 
                || introspectedColumn.getJdbcType() == Types.DOUBLE 
                || introspectedColumn.getJdbcType() == Types.DECIMAL) {
                System.out.println("Mapping " + introspectedColumn.getActualColumnName() + " to Integer");
                answer = new FullyQualifiedJavaType(Integer.class.getName());
            } else {
                answer = jdbcTypeInformation.getFullyQualifiedJavaType();
            }
        } else {
            answer = null;
        }

        return answer;
    }
}

위에서 설정했던 generatorConfig.xml 파일을 수정해준다.

<generatorConfiguration>
<context id="DB" targetRuntime="MyBatis3">
<!--      CustomColumnNamePlugin경로 설정해주세요  -->
<plugin type="CustomColumnNamePlugin경로.ext.etc.CustomColumnNamePlugin"/>
<commentGenerator>
<property name="addRemarkComments" value="true"/>
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!--  		접속정보 설정해주세요  -->
<jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver" connectionURL="jdbc:oracle:thin:@db접속url" userId="db아이디" password="db비밀번호"> </jdbcConnection>
<!--  		CustomJavaTypeResolver 경로 설정해주세요  -->
<javaTypeResolver type="CustomJavaTypeResolver 경로.ext.etc.CustomJavaTypeResolver">
	<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!--  		targetProject와 targetPackage설정해주세요(어디에 생길건지)  -->
<javaModelGenerator targetPackage="생성할 model 경로.ext.generator.model" targetProject="프로젝트이름">
	<property name="useActualColumnNames" value="true"/>
</javaModelGenerator>
<!--  		targetProject와 targetPackage설정해주세요(어디에 생길건지)  -->
<sqlMapGenerator targetPackage="targetProject경로.ext.generator.mapper" targetProject="프로젝트이름"> 
</sqlMapGenerator>
<!--  		targetProject와 targetPackage설정해주세요(어디에 생길건지)  -->
<javaClientGenerator type="XMLMAPPER" targetPackage="생성할 mapper 경로.ext.generator.mapper" targetProject="프로젝트이름"> 
</javaClientGenerator>
<!--  tableName(DB상의 테이블 이름), domainObjectName(JAVA에서 생성될 이름) 설정해주세요  -->
<table tableName="dbTableName" domainObjectName="javaCreateTableName">
  <property name="useActualColumnNames" value="true"/>
  <property name="ignoreQualifiersAtRuntime" value="true"/>
  <property name="delimitIdentifiers" value="true"/>
</table>
</context>
</generatorConfiguration>

수정을 완료했다면 해당 generatorConfig.xml 파일을 우클릭 후 Run As > Run Mybatis Generator 를 클릭한다.

profile
기록자

0개의 댓글