#{}
파라미터가 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 = 홍길동
참고
'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 |