728x90
MyBatis에서는 #{변수}, ${변수}을 사용해 해당 변수를 넘겨준 파라미터 값으로 치환할 수 있다.
이 때, 둘은 쿼리가 실행될 때 차이점을 보인다.
아래의 두 쿼리문을 보자.
SELECT * FROM MOVIES WHERE MOVIENAME=#{movieName}
SELECT * FROM MOVIES WHERE MOVIENAME=${movieName}
위 쿼리문을 마이바티스를 통해 실행했을 경우 실제로는 아래와 같이 실행된다.
SELECT * FROM MOVIES WHERE MOVIENAME='타이타닉';
SELECT * FROM MOVIES WHERE MOVIENAME=타이타닉;
이러한 차이 때문에 동적쿼리문을 작성할 때 테이블명 혹은 컬럼명이 입력해야 하는(따옴표가 없어야 하는) 부분에는 '#{변수}'를, 값이 입력되어야 하는(따옴표가 붙어야 하는) 부분에는 '${변수}'를 사용할 수 있다.
반응형
'Backend > Spring' 카테고리의 다른 글
Spring + React 프로젝트 환경 구축 (0) | 2022.05.06 |
---|---|
Spring) 실제 프로젝트가 실행되는 실제 경로 구하기 (0) | 2022.01.16 |
Spring) 이미지 데이터(BLOB 타입)을 데이터베이스에서 가져와서 파일화하기 (0) | 2022.01.16 |
Spring) 바이너리 파일을 DB에 저장 후 요청에 의해 바로 다운로드하기 (0) | 2021.12.06 |
Spring) Poi와 Jxls를 사용해 Template을 이용한 워드 다운로드 (0) | 2021.12.06 |