개발/JAVA
[java] MyBatis에서 #{} vs ${} 차이
주식쟁이 개발자
2022. 5. 10. 22:38
반응형
mybatis에서 mapper.xml(쿼리 작성해 놓는 xml파일)에서 파라미터를 쓸때,
2가지가 혼용되어 쓰이고 있어서 다시 한번 정리해봤습니다.
#{}
- 파라미터가 String으로 들어와서(= 자동으로 ''가 붙는다) 자동으로 '파라미터 값'으로 적용
- (예 : where id = #{id} 이고 id 값이 1234면, 쿼리에는 where id = '1234'로 출력)
- SQL Injection 예방
${}
- 파라미터가 그대로 출력
- 컬럼의 자료형에 맞춰 파라미터의 자료형이 변경
- 사용자의 입력을 그대로 전달하는 경우에는 부적당
- 테이블, 컬럼명을 파라미터로 전달할때 적당
- SQL Injection을 예방할 수 없음
반응형