본문 바로가기

이클립스사용법

mybatis $ # 차이

https://logical-code.tistory.com/25

 

Mybatis 에서 #{} 과 ${}의 차이

Mybatis 에서 #{} 과 ${}의 차이/* * [개정 이력] * 2017.12.01 내용 보충 */ 회사에 취직하고나서, 쿼리문을 작성하는데 이상한 점을 발견했다.바로 Mybatis 를 이용해 XML에 쿼리문을 작성하는데, 파라메터

logical-code.tistory.com

#{}

String 형태로, 자동으로 '파라메터' 형태가 된다고 합니다.
ex) #{user_id}의 값이 abc라면, 쿼리문에는 USER_ID = 'abc'의 형태가 됨.
쿼리 주입을 예방할 수 있어 보안측면에서 유리.

 

${}

파라매터가 바로 출력.
해당 컬럼의 자료형에 맞추어 파라매터의 자료형이 변경된다.
쿼리 주입을 예방할 수 없어 보안측면에서 불리하다. 그러므로, 사용자의 입력을 전달할때는 사용하지 않는 편이 낫다.
테이블이나 컬럼명을 파라메터로 전달하고싶을 때 사용한다. #{}은 자동으로 ''가 붙어서 이 경우에는 사용할 수 없다.

 

728x90
300x250