티스토리 뷰
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
링크
TAG
- Letsencrypt+nginx
- 마이바티스
- letsencrypt
- Intellj들여쓰기
- SSL
- camelcase
- Letsencrypt wildcard
- 마이바티스CamelCase
- Letsencrypt wildcard auto renew
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함