반응형
mybatis에서 mapper.xml(쿼리 작성해 놓는 xml파일)에서 파라미터를 쓸때,
2가지가 혼용되어 쓰이고 있어서 다시 한번 정리해봤습니다.
#{}
- 파라미터가 String으로 들어와서(= 자동으로 ''가 붙는다) 자동으로 '파라미터 값'으로 적용
- (예 : where id = #{id} 이고 id 값이 1234면, 쿼리에는 where id = '1234'로 출력)
- SQL Injection 예방
${}
- 파라미터가 그대로 출력
- 컬럼의 자료형에 맞춰 파라미터의 자료형이 변경
- 사용자의 입력을 그대로 전달하는 경우에는 부적당
- 테이블, 컬럼명을 파라미터로 전달할때 적당
- SQL Injection을 예방할 수 없음
반응형
'개발 > JAVA' 카테고리의 다른 글
String, StringBuilder, StringBuffer 차이점 - 싱글 스레드, 멀티스레드, 참조, 불변성, thread safe (1) | 2023.05.08 |
---|---|
(java) List/ArrayList <-> Array 변환 (0) | 2022.07.31 |
[JAVA] Array를 List로 변경하는 방법 (0) | 2022.07.04 |
Try with resources를 이용한 자원해제 처리 (1) | 2022.05.11 |
[java] Map에 순서대로 넣을때 / 뺄때 / 사용할때 (1) | 2021.11.22 |