일반적으로 ibatis 에서는 숫자형은 # 문자열은 $로 표기한다.

그래서 파라미터를 넣고 변환하는 과정의 프로그램을 만들다가 알아낸건데.

java의 replace 관련 함수들은  (replaceFirst  / replaceAll  포함) 정규표현식을 제공한다.

문제는 $ 표기는 정규표현식에서 문자열의 가장 끝을 나타낸다.

이는 replace에서 $를 기준으로 문자열을 치환한다면 문자열의 가장 끝으로 문자가 붙어 버린다.

ex)   String str = "$aa  ";
        str =     str. replace("$" , "aaa"); 
       이라고 할때 str은 "aaaaa  " 이 아닌 "$aa  aaa" 이렇게 나오게 된다. 

결국 $를 replace 함수  (replaceFirst  / replaceAll  포함) 의 첫번째 파라미터 oldchar로 설정할땐
"$"-> "\\$" 로 해야 원하는 결과가 나올것이다.

- -_-이것때문에 두시간 날림....췟. 

WRITTEN BY
No.190
세계정복의 시작점

받은 트랙백이 없고 , 댓글이 없습니다.
secret