iBatis 의 ## 과 $$ 의 차이

*** $preferredOrder$와 #value#의 차이


iBatis에 변수에 들어 가는 값이 bind로 대입되는 것 과 직접 입력 되는 것의 차이 입니다.

# # 는 bind 변수를 사용하는 것과 마찬가지로 값을 대입 해주는 것이고, 

$ $ 는 값을 가져와서 문자 직접 입력 해주는 것입니다.

 



변수 입력값이 user_id = 'test' 라고 가정한 경우를 살펴봅시다.

1) ## 를 사용한 경우
select * from WORKER where WORKER_ID = #USER_ID# 

Executing Statement:
 -> select * from WORKER where WORKER_ID =?
 -> parameter : [test]
위와 같이 대입되어
 -> select * from WORKER where WORKER_ID = 'test'
 가 실행됩니다.

2) $$ 를 사용한 경우
select * from WORKER where WORKER_ID = $USER_ID$ 

Executing Statement:
 -> USER_ID 에 'test' 값이 바로 넣어져서
 -> select * from WORKER where WORKER_ID ='test'
가 실행됩니다.

3) 두개를 동시에 사용 했을 때의 예제.
 USER_ID = 'test', USER_NAME = '테스트' 라 가정했을 경우

 select * from WORKER
 where WORKER_ID = #USER_ID# 
 order by $USER_NAME$

queyr 진행 순서는 다음과 같습니다.
1. select * from WORKER  where WORKER_ID = #USER_ID#  order by '테스트'
2. select * from WORKER  where WORKER_ID = ?  order by '테스트'
3. parameter : [test]
4. ? 에 파라미터 값인 'test' 가 대입됨.
5. select * from WORKER  where WORKER_ID = 'test'  order by '테스트'

# # 는 bind 변수를 사용하는 것과 마찬가지로 값을 대입 해주는 것이고, 

$ $ 는 값을 가져와서 문자 직접 입력 해주는 것입니다.

by 북극성인 | 2008/11/11 10:32 | 트랙백 | 덧글(0)

트랙백 주소 : http://iceken.egloos.com/tb/3975521
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]

:         :

:

비공개 덧글

◀ 이전 페이지          다음 페이지 ▶