본문 바로가기
개발/MyBatis

[MyBatis] 변수 사용시 #{value}, ${value}의 차이

by zuzuu 2021. 11. 30.
반응형

 

지난번에 회사에서 얘기를 나누다보니 모르는 사람도 있길래 정리해본다!

 

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
반응형

'개발 > MyBatis' 카테고리의 다른 글

[MyBatis] 반복되는 쿼리 작성하기 <foreach>  (0) 2022.01.06

댓글