swimminginthecode DIVE!

ETC/DB

MyBatis 04 - ${}, #{}

dazz6 2024. 7. 31. 18:00
#{}
파라미터가 String 형태로 들어와 자동적으로 '파라미터' 형태가 되므로 쿼리 주입을 예방할 수 있어 보안 측면에서 유리 
${}
파라미터가 바로 출력되고, 해당 컬럼의 자료형에 맞추어 파라미터의 자료형이 변경됨
쿼리 주입을 예방할 수 없으므로 사용자의 입력을 전달할 때는 사용을 지양하는 것이 좋음
주로 테이블이나 컬럼명을 파라미터로 전달하는 데 사

예시 코드

/* #{} */
SELECT * FROM data WHERE data_name = #{name}
// SELECT * FROM data WHERE data_name = '홍길동'

/* ${} */
SELECT * FROM data WHERE data_name = ${name}
// SELECT * FROM data WHERE data_name = 홍길동

 

 

참고

Mybatis 에서 #{} 과 ${}의 차이 — 논리적 코딩 (tistory.com)

'ETC > DB' 카테고리의 다른 글

H2 Database  (0) 2024.08.02
MyBatis 03 - resultType과 resultMap  (0) 2024.07.18
MyBatis 02  (1) 2024.07.09
MyBatis 01  (0) 2024.06.27
SQL 07  (1) 2024.04.29