티스토리 뷰

resultType을 DTO Object일 경우 MyBatis는 기본적으로 대소문자 구분없이 동일한 필드명에 맵핑된다.

DB칼럼명에 _가 있을 경우 _이후 첫글자를 대문자로 변환하여 맵핑된다.

 

아래와 같은 DTO객체가 있다고 가정한다.

@Data
public class MemberDto{
	private String memberNo;
    private String memberName;
    private String memberNickName;
}

아래와 같은 테이블이 있다고 가정한다.

CREATE TABLE `device_log` (
	`member_no` BIGINT(20) NOT NULL AUTO_INCREMENT,
	`member_name` VARCHAR(100) NULL DEFAULT NOT NULL COLLATE 'utf8_unicode_ci',
	`member_nick_name` VARCHAR(100) DEFAULT NOT NULL COLLATE 'utf8_unicode_ci',
	PRIMARY KEY (`member_no`)
)
COLLATE='utf8_unicode_ci'
ENGINE=InnoDB
;

 

쿼리 작성 예시

기존방식
<select id="memberInfo" parameterType="memberDto" resultType="memberDto">
    select
            member_no as memberNo,
            member_name as memberName,
            member_nick_name as memberNickName
    from
            member
    where
            member_no=#{memberNo}
</select>

CamelCase로 맵핑 적용 후 자동으로 _를 삭제하고 _이후 첫글자 대문자로 표기 한다.
<select id="memberInfo" parameterType="memberDto" resultType="memberDto">
    select
            member_no,
            member_name,
            member_nick_name
    from
            member
    where
            member_no=#{memberNo}
</select>

CamelCase로 맵핑하는 방법

Mybatis 설정 팔일에서 아래의 값을 추가 하여준다.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0/EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
 
<configuration>        
    <settings>        
        <setting name="mapUnderscoreToCamelCase" value="true" />
    </settings>    
</configuration>
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함