MyBatis
MyBatis <choose> 마이바티스 choose / SQL INSERT or UPDATE 시 변수값이 null or ""(빈문자열) 일 때 기본값 세팅
JM_H
2023. 7. 29. 09:21
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>