iBatis를 사용하다 보니 또하나의 문제에 봉착했다.. LIKE 검색의 %기호를 인식하지 못하는 것이었다.
구글신에게 검색해 보고 다음과 같은 해결책을 얻을 수 있었다.
MySQL :
ORACLE :
SYBASE/SQL SERVER
여기서 변수명을 #로 둘러싸는 것과 $로 둘러싸는것의 차이점을 알 필요가 있다.
#의 경우에는 Prepare Statement로 등록이 된다. 디버그를 찍어봐도 ?로 치환된 이후 값이 대입된다.
하지만 $의 경우 바로 값이 치환된다. 특정 변수가 바로 DB에 입력되므로 보안에 좀더 신경을 써야 할것으로 생각된다.
출처 : http://theeye.pe.kr/186
구글신에게 검색해 보고 다음과 같은 해결책을 얻을 수 있었다.
MySQL :
SELECT * FROM tbl_name WHERE column_name LIKE "%$username$%"
ORACLE :
SELECT * FROM tbl_name WHERE column_name LIKE '%' || #username# || '%'
SYBASE/SQL SERVER
SELECT * from tbl_name WHERE column_name LIKE '%' + #username# + '%'
여기서 변수명을 #로 둘러싸는 것과 $로 둘러싸는것의 차이점을 알 필요가 있다.
#의 경우에는 Prepare Statement로 등록이 된다. 디버그를 찍어봐도 ?로 치환된 이후 값이 대입된다.
하지만 $의 경우 바로 값이 치환된다. 특정 변수가 바로 DB에 입력되므로 보안에 좀더 신경을 써야 할것으로 생각된다.
출처 : http://theeye.pe.kr/186
'DB > iBatis' 카테고리의 다른 글
iBatis 사용방법 정리 (1) | 2008.12.15 |
---|---|
IBATIS > Dynamic SQL (1) | 2008.11.07 |
The SqlMap API (1) | 2008.07.07 |
iBatis sqlMap 설정하기 (0) | 2008.07.03 |
Websphere 6 + iBatis 연동 설정 (0) | 2008.06.10 |