잡다한 IT
MyBatis, 동적 쿼리 사용 (동적 컬럼명 적용)
Hwarang.pop
2024. 9. 2. 19:13
728x90
320x100
문자그대로 적용되기 위해서는 ${ } 를 사용해야 한다
MyBatis에서 작성할 수 있는 기본적인 동적 쿼리는 단순히 WHERE절에 파라미터를 적용한 방법이다.
XML파일에서
<SELECT ID="SEARCH" RESULTMAP="SEARCHVO" PARAMETERTYPE="MAP">
SELECT
*
FROM EMPLOYEE
WHERE
#{PARAM1} = #{PARAM2}
</SELECT>
PARAM1 에서는 동적 컬럼명(MEMBER_ID)을 변수로 받고,
PARAM2 는 해당 컬럼에 포함되는 데이터('TISTORY')를 받아 처리하고자 하였지만,
쿼리의 결과는
SELECT
*
FROM EMPLOYEE
WHERE
'MEMBER_ID' = 'TISTORY'
처럼 동적 컬럼명이 제대로 적용되지 않았다.
#{ } 는 파라미터 값이 작은따옴표(' ') 로 감싸서 들어간다.
작은 따옴표 없이 문자그대로 적용되기 위해서는 ${ } 를 사용해야 한다.
<SELECT ID="SEARCH" RESULTMAP="SEARCHVO" PARAMETERTYPE="MAP">
SELECT
*
FROM EMPLOYEE
WHERE
${PARAM1} = #{PARAM2}
</SELECT>
▼▼▼▼▼▼
SELECT
*
FROM EMPLOYEE
WHERE
MEMBER_ID = 'TISTORY'
728x90
반응형