Home
Java
마이바티스 컬럼 자동으로 맵핑하기 (MyBatis Column CamelCase Auto Mapping)
devfoxstar
devfoxstar
August 16, 2022
1 min

Table Of Contents

01
쿼리 정의
02
모델 정의
03
CamelCase 설정
04
Auto Mapping

MyBatis를 정석대로 사용해 보겠습니다.
맵퍼 파일에 쿼리를 정의하고 모델링을 합니다.


쿼리 정의

<select id="selectUsers" resultType="com.devfoxstar.model.User">
    SELECT
        (USER_ID)AS userId,
        (USER_NAME)AS userName
    FROM USER
</select>

모델 정의

package com.devfoxstar.model;

public class User {
    private int userId;
    private String userName;

    public int getUserId() {
        return userId;
    }

    public void setUserId(int userId) {
        this.userId = userId;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName
    }
}

그런데 쿼리에 정의된 기본 컬럼명과 모델에 정의된 필드명이 일치하지 않습니다.
그래서 두 개의 네이밍을 맞추는 변환 과정을 거쳤습니다.

간단한 쿼리는 상관없는데, 컬럼명이 많아지면 굉장히 불편합니다.
이때 자동으로 네이밍을 맞춰주는 설정이 있습니다.


CamelCase 설정

mybatis-config.xml 설정 파일에 CamelCase 조건을 추가하면 됩니다.

<configuration>
    <settings>
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>
</configuration>


Auto Mapping

이제 따로 컬럼명을 변환하지 않아도, 마이바티스에서 자동으로 맵핑해 줍니다.
그럼 아래와 같이 간단하게 쿼리를 정의할 수 있습니다.

<select id="selectUsers" resultType="com.devfoxstar.model.User">
    SELECT
        USER_ID,
        USER_NAME
    FROM USER
</select>

MyBatis Mapper Setting


Tags

#Java#Spring#MyBatis#CamelCase#AutoMapping

Related Posts

Java - Record class (불변 데이터 객체 만들기)
June 11, 2024
1 min
© 2024, All Rights Reserved.

Quick Links

About Me

Media