Ibatis query 내부 대괄호[] 사용질문 0 2 6,380

by kdg99 [DB 기타] Ibatis [2024.11.01 13:57:49]


안녕하세요 쿼리 관련된 질문이라기보다는 Ibatis 사용법에 관한 질문이지만

Ibatis squarebarcket 등의 키워드로 검색해보아도 iterator관련 결과만 나오기에 혹여 알고계실까 싶어 질문올립니다.

 

이번에 테이블과 컬럼을 조회해와서 화면에 띄워주고

거기서 선택한 컬럼들만 조회해오는 쿼리를 만들어

그 결과를 그리드로 표현하고 있습니다

1
2
SELECT A.COL1 AS "컬럼1코멘트"
  FROM TABLE A

 

이런식으로 쿼리를 생성하여

1
2
3
<select id="getQuery" parameterClass="map" resultClass="hashmap" remapResults="true">
    $QUERY$
</select>

$QUERY$ 로 조회해오도록 하였는데요

 

컬럼코멘트을 그리드의 열 head값으로 주기위해 그대로 가져오는데 컬럼코멘트에 대괄호 [ ] 가 있는 경우에는 ibatis 가 배열로 인식을 해버리는건지 어떻게 해도 사용이 불가능하더라구요

혹시 ibatis 내부에서 []을 사용할 방법이 있는지 궁금합니다.

우선 컬럼코멘트를 가져올때 replace를 해주고는 있으나 그대로 사용하고 싶어서요

by 우주민 [2024.11.01 14:38:38]

$QUERY$ 이 부분을 #QUERY# 형태로 적용 해보시는것은 어떨까요.

ibatis 쪽은 아니지만 $ 대신 # 을 사용하면 해당 내용을 텍스트가 아닌 변수값 처럼 받는 것으로 인식해서 특수문자 문제를 해결한 유사 경험이 있습니다.... (근데 그건 어느 프로그램이였는지... 기억이....)

유사 경험이다 보니 이것이 해결책이다! 의 느낌은 아니지만, 다른 관련자 분들의 정확한 답변 내용이 늦어진다면 이렇게 테스트 해보심이 어떨지 건의 드립니다.


by kdg99 [2024.11.01 15:56:27]

답변감사드립니다

말씀주신것처럼 ibatis 에서 ##을 사용하면 양 옆을 홑따옴표로 감싸주는걸로 알고 있습니다

변수 안에 쿼리가 담겨있다보니 곧바로 실행해야 하기에 $$를 사용하였습니다.

그런데 떠올려보니 ##를 이용해 exucute를 곧바로 하는 예시를 어디선가 본 것 같습니다.

##로 []를 받을 수 있는지 확인해보고 적용해보겠습니다

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입