728x90
주로 #{} 이렇게 되어있는데 ${} 이렇게 되어있는 부분도 있어서 검색해보았다.
#{}와 ${}의 가장 큰 차이는 '', String이냐 아니냐의 차이인 것 같다.
#{}
String 형태로 주입되어 자동적으로 ''가 붙는 형태가 된다.
WHERE user_idx = #{user_idx}
예를 들면 위의 경우 출력되는 쿼리문은 WHERE user_idx = '2'의 형태가 된다.
쿼리 주입을 예방할 수 있어서 보안 측면에서 유리하다.
${}
String 형태가 아닌 주입되는 형태 그대로 출력된다.
쿼리 주입을 예방할 수 없어서 보안 측면에서 불리하다.
테이블 명, 칼럼 명을 전달할 때 사용한다. #{}의 경우 String 형태이기 때문에 ''가 붙어서 사용할 수 없다.
출처
728x90
'Server > Database' 카테고리의 다른 글
[MyBatis] UPDATE SET 1=1은 없을까? / 대신 trim을 사용해 보았다. (0) | 2022.11.22 |
---|---|
[MySQL] IntelliJ 테이블 복사 (0) | 2022.09.15 |
[MySQL] auto increment 1로 변경하는 방법 (0) | 2022.08.30 |