- 참고: https://madplay.github.io/post/difference-between-dollar-sign-and-sharp-sign-in-mybatis
- 참고: https://rh-cp.tistory.com/71
- 참고: https://logical-code.tistory.com/25
 
■ mybatis #과 $의 차이
- #을 사용하면, Prepared Statement를 의미한다. 변수 값이 바뀌더라도 같은 쿼리로 인식되어 재활용되기 때문에 성능에 유리하다. 그리고 변수 값 양쪽에 자동으로 따옴표(')가 붙기 때문에 SQL Injection을 방어할 수 있다.
- $를 사용하면, 일반 Statement를 의미한다. 변수 값이 바뀔 때마다 다른 쿼리로 인식되어 새로 파싱 과정을 거치기 때문에 성능에 불리하다. 그리고 변수 값이 그대로 반영되어 SQL Injection에 취약하다. 테이블명이나 컬럼명을 넘겨 받아야 하는 용도 정도로만 사용하면 된다.

 

+ Recent posts