[MyBatis] #{}, ${}

grgf·2021년 6월 4일
0

#{}를 사용하면 parameter가 자동으로 String 형태로 된다.
#{id}에서 id = abc라면 'abc'로 변환되는 것이다.
그리고 쿼리 주입을 예방할 수 있어서 보안측면에서 좋다고 한다.
그리고 이는 PreparedStatement라고 한다.


${}는 parameter가 바로 출력된다.
Statement이다.
해당 column에 맞게 타입이 변환된다.
쿼리 주입을 예방할 수 없기에 보안에 좋지 않다. 사용자의 입력을 받을 때는 쓰지 않는 것이 좋다.
ORDER BY로 사용할 경우에는 ${}를 사용해야 한다.
#{}는 ''이 붙기 때문이다.

참고:
https://logical-code.tistory.com/25
https://java119.tistory.com/39
https://mine-it-record.tistory.com/300

0개의 댓글