SQL INSERT 나 UPDATE 를 실행하는데
특정 컬럼에 값이 null이나 "" (빈문자열)이 저장되지 않도록 제어하고 싶은 경우가 있으면
MyBatis의 <choose> 를 활용하여 동적쿼리를 구현할 수 있다.
그래서 변수값이 null 이 넘어오거나 "" 빈문자열이 넘어올 때 지정한 기본값을 저장하여
DB 테이블 컬럼에 null이나 ""(빈문자열) 이 직접적으로 저장되지 않도록 제어가 가능하다.
/* 예시 UPDATE 문 : 파라미터에는 testVal 와 idx 라는 key로 value(값) 가 담겨있다고 가정 */
<update id="updateTest" parameterType="hashmap">
UPDATE
TEST_TABLE
SET
<choose>
/* testVal 값이 null 또는 ''(빈문자열) 이면 아래 <when> 블록 안 구문을 실행 */
<when test="testVal == null or testVal == ''">
content = 'default value'
</when>
/* testVal 값이 null 또는 ''(빈문자열) 아니라면 <otherwise> 블록 안 구문을 실행 */
<otherwise>
content = #{testVal}
</otherwise>
WHERE
test_idx = #{idx}
</update>
'MyBatis' 카테고리의 다른 글
이클립스 마이바티스 매퍼 mapper xml DOCTYPE dtd 컴파일 에러 (어플리케이션 실행 및 쿼리 실행에 문제는 없는데 에러 떠 있는 경우) (3) | 2024.02.25 |
---|---|
MyBatis 마이바티스 MySQL 일괄 insert, 다중 insert / <foreach> (0) | 2023.04.23 |
MyBatis 마이바티스 변수 작성시 사용하는 ${} 와 #{} 차이점 (0) | 2023.03.11 |
MyBatis 마이바티스 MySQL UPDATE 누적 합계 (INT 자료형) (0) | 2023.02.11 |
MyBatis 마이바티스 주석 작성시 주의사항 (0) | 2023.01.21 |
최근댓글