개발/MyBatis
[MyBatis] 변수 사용시 #{value}, ${value}의 차이
zuzuu
2021. 11. 30. 16:48
반응형
지난번에 회사에서 얘기를 나누다보니 모르는 사람도 있길래 정리해본다!
1. #{} 사용
SELECT * FROM USER WHERE USER_ID = #{user_id}
user_id의 값이 test라면 아래와 같은 쿼리가 실행된다.
SELECT * FROM USER WHERE USER_ID = 'test';
2. ${} 사용
SELECT * FROM USER WHERE USER_ID = ${user_id}
user_id의 값이 test라면 아래와 같은 쿼리가 실행된다.
SELECT * FROM USER WHERE USER_ID = test
${}를 사용할 경우 작은따옴표가 안붙기때문에 예약어나 칼럼명 등을 사용할 때 적용하면 된다
예를 들어 아래와 같이 쿼리를 작성했을 경우
SUM( CASE WHEN policy=#{policy} THEN 1 ELSE 0 END ) as POL${policy}
이렇게 실행된다.
SUM( CASE WHEN u.policy='01' THEN 1 ELSE 0 END ) as POL01
728x90
반응형