카테고리 없음
iBatis 의 ## 과 $$ 의 차이
[czar]
2010. 4. 30. 11:16
*** $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 변수를 사용하는 것과 마찬가지로 값을 대입 해주는 것이고,
$ $ 는 값을 가져와서 문자 직접 입력 해주는 것입니다.