본문 바로가기

iBatis 3.0

[3.0] forEach 사용 item : forEach내에서 각 아이템 이름으로 사용할 것. index : index collection="classNames" // 배열명 open="" // forEach 시작 전 ex: "(" forEach 시작전에 ( #{item} separator="," // forEach 1회시 구분 해줄 기호 close="" // forEach 종료 후 ex: ")" forEach 종료 후에 ( #{item}, #{item}, #{item} .... #{item[index]} ) SUM(CASE WHEN R.CLASS_NAME = #{item} THEN R.CNT ELSE 0 END) AS #{item}
[3.0] like 검색. - iBatis 3.0 에서 간단하게 like 검색 하는 법 CB.CUSTOMER_NAME like CONCAT('%', #{customerName:VARCHAR}, '%') 사용 예 ) SELECT CB.COUPON_BOOK_NO, CN.COUPON_NAME_SEQ, CN.COUPON_NAME , CASE WHEN CB.CHARGE_TYPE = 'F' THEN '무상' ELSE '유상' END AS CHARGE_TYPE , AM.AUTO_MODEL_SEQ , AM.MODEL_NAME , IFNULL(CB.CAR_NUMBER, '') AS CAR_NUMBER , CB.VIN_NO , CB.CUSTOMER_NAME , CONCAT(CB.CUSTOMER_PHONE_1, '-', CB.CUSTOMER_PHON..
[3.0] JDBC Type 쿼리~~ AND (TO_DAYS(CB.COUPON_EXPIRED_DATE) - TO_DAYS(CAST(#{criterionDate} AS DATE)) BETWEEN #{criterionDay1:NUMERIC} AND #{criterionDay2:NUMERIC})
iBatis 3.0 Cache 문제 - 1. Query 실행 후 그 결과를 Map에 담아 리턴해 페이지에 출력. 2. 다른 곳에서 위 출력 결과에 영향을 주는 컬럼 값을 변경한다. 3. 다시 1번을 수행하면 2번의 결과가 반영되지 않고 수정하기 전의 결과가 딱 나온다. iBatis로그가 아닌 일반 로그에서는 호출은 되나 iBatis가 실행되진 않았다. - 조건을 다르게 해서 실행 했을경우 sql을 실행하지만, 결과 값인 Map에는 수정하기 전의 정보가 들어있다. - statementType="CALLABLE" flushCache="false" useCache="false" 모두 헛 수고 왜 그런지 문서좀 뒤져야겠다.. 일단.. iBatis 로그부터 찍어야하고..