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';

위 처럼 쿼리가 수행되는 경우 문자열로 치환되어 수행된다.

하드 파싱으로 볼 수 있다.

컬럼명이 동적으로 변하는 경우가 적합하다.

반응형