YOO
article thumbnail

 

 

# { } ''가 씌워진 형태가 반환되고,

$ { } ''가 씌워지지 않은 형태가 반환

 

대개

#는 값에 사용한다.

$는 컬럼명이나 테이블 명에 사용

 

 

 


# { }
1. # { } 사용시 PreparedStatement 생성
2. PreparedStatement 매개 변수 값 안전하게 설정
3. PreparedStatement 가 제공하는 set 계열의 메소드를 사용하여 물음표(?)를 대체할 값을 지정.
4. 들어오는 데이터 문자열로 인식하기 때문에 자동 따옴표 붙음

사용 이유
안전하고 빠르기 떄문에 선호.
Prepared (준비)
여기서 말하는 준비는 컴파일(Parsing) 을 이야기하며, 컴파일이 미리 되어있는 녀석이기에 Statement 에 비해 성능상 이점

 

 

 


$ { }
1. ${ } 사용시 Statement 생성
2. Statement 매개변수 값 그대로 전달
3. 그대로 전달 하기 떄문에 문자열에 따옴표가 붙지 않는다.
4. ${ } 는 SQL Injection 에 취약해서 보안 문제가 있다

$ { } 사용 이유
ORDER BY 함수를 사용할 때 오히려 자동 따옴표가 붙으면
함수가 안먹기 때문에 $ { }를 써야한다.
덧붙여서 GROUP BY,  동적 쿼리에서 컬럼 이름이나 테이블 명을 사용할 때도

 

 

 

※ 필요한 때가 아니면 # { } 을 쓰는 게 효율적인 측면이나 보안 측면에서 더 유리

 

 

 

 

출처 : https://grandma-coding.tistory.com/entry/MyBatis-%EC%99%80-%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90

출처 : https://mine-it-record.tistory.com/300

 

 

 

 

 

 

'Studying > SQL' 카테고리의 다른 글

문자열 합치기 - ||(쌍파이프), CONCAT, (+)  (0) 2023.07.31
[Oracle & Tibero] 기존 PK 있는 테이블 컬럼 추가(PK, NOT NULL)  (0) 2023.07.24
LISTAGG 함수  (0) 2023.07.05
Merge  (0) 2023.06.11
데이터 타입  (0) 2023.05.12

검색 태그