728x90
반응형
myBatis에서 ?(물음표) 문자 사용하기
myBatis를 사용하는 프로젝트를 진행하다보면, 물음표를 문자로써 사용해야 하는데, 해당 부분에 parameter로 들고온 값이 들어가는 경우가 있습니다.
이럴 경우, CHR(63)을 '?' 대신 써주면 됩니다.
'&' 역시 마찬가지로 문자로 사용하고 싶다면 CHR(38)을 대신 써주면 문자로 사용이 가능합니다.
사용 예시
만약, '?'를 그냥 쿼리문에 넣게되면 하기와 같은 결과를 도출하게 됩니다.
// 만약, 아래와 같이 사용하게 되면, parameterType으로 지정한 값들이 들어갈 수 있습니다
// 필자의 경우는, '?'로 사용해도 쿼리는 제대로 돌아갔지만, jdbc.sqlonly에 의해 출력된 쿼리문에는 '?' 위치에 paramter로 지정한 값이 들어가있었습니다.
SELECT SPLIT_PART(BEFORE, '?', 1) AFTER
FROM TABLE_NAME
// '?'로 직접 넣었을 때의 sql 출력문(필자의 parameter는 string타입의 시간데이터여서 '?'위치에 해당 데이터 들어감
SELECT SPLIT_PART(BEFORE, '2021-02-02 00:00:00', 1) AFTER
FROM TABLE_NAME
반면, CHR(63)으로 '?' 자리에 대신 작성하게 되면 하기와 같이 잘못된 parameter가 들어가지 않고 제대로 쿼리가 작동합니다.
// '?'를 문자로 사용하기
SELECT SPLIT_PART(BEFORE, CHR(63), 1) AFTER
FROM TABLE_NAME
// CHR(63)으로 '?'을 대신 했을때의 sql 출력문
SELECT SPLIT_PART(BEFORE, CHR(63), 1) AFTER
FROM TABLE_NAME
728x90
반응형
'FRAMEWORK > Spring' 카테고리의 다른 글
[SpringBoot] JPA로 데이터베이스 다루기 (0) | 2021.04.24 |
---|---|
[SpringBoot] springboot에서 테스트 코드 사용하기 (0) | 2021.04.20 |
[SpringBoot] 게시판 구현하기 21 (스프링 Cloud Config 사용하기) - 미완 (1) | 2021.01.28 |
[SpringBoot] 게시판 구현하기 20 (스프링 프로파일 적용하기) (0) | 2021.01.11 |
[SpringBoot] 게시판 구현하기 19 (Swagger) (0) | 2021.01.11 |