DB/Oracle
[iBatis, myBatis] 변수 사용 시, ##과 $$ 차이점
멍목
2021. 2. 15. 22:06
반응형
- iBatis 변수 사용 방법 : #변수# or $변수$
- myBatis 변수 사용 방법 : #{변수} or ${변수}
변수 사용 시에 #과 $를 사용할 수 있습니다.
그럼 이 두 가지의 차이점을 알아보겠습니다.
1. # 사용
// String param = "orange";
SELECT *
FROM FRUIT_TABLE
WHERE FRUIT_NAME = #param#;
▼ (쿼리 수행 시)
SELECT *
FROM FRUIT_TABLE
WHERE FRUIT_NAME = ?;
위 처럼 쿼리가 수행되는 경우 ?에 bind 값이 들어가게 된다.
소프트 파싱으로 볼 수 있으며, 쿼리 재사용에 효율적이다.
즉, 자주 바뀌는 값이나 사용자에게 입력받는 경우 적합하다.
2. $ 사용
// String param = "orange";
SELECT *
FROM FRUIT_TABLE
WHERE FRUIT_NAME = '$param$';
▼ (쿼리 수행 시)
SELECT *
FROM FRUIT_TABLE
WHERE FRUIT_NAME = 'orange';
위 처럼 쿼리가 수행되는 경우 문자열로 치환되어 수행된다.
하드 파싱으로 볼 수 있다.
컬럼명이 동적으로 변하는 경우가 적합하다.
반응형