iBATIS 배열 파라메터 처리 : iBATIS Array Parameter
728x90
반응형
배열로 넘긴 파리메터 값을 처리하는 방법에는 iterate 노드를 사용한다. 스트럿츠에도 반복문을 사용할 때 사용하는 문구이다.
** 테이블 구조 및 iBATIS 기본적인 설명은 생략한다.
* 로직
<% // 배열 파라메터 String worker_idx_ar[] = request.getParameterValues("worker_idx"); HashMap hm = new HashMap() ; // input hm.put("worker_idx_ar", worker_idx_ar); // result List posttimeRet = sqlMap.queryForList("select-post-time-array",hm); %> <% // 배열 ArrayList worker_idx_ar = new ArrayList(); while(생략...) { int worker_idx = 생략; worker_idx_ar.add(worker_idx); } HashMap hm = new HashMap() ; // input hm.put("worker_idx_ar", worker_idx_ar); // result List posttimeRet = sqlMap.queryForList("select-post-time-array",hm); %>
* sqlMap
파리메터 값에 따옴표( ' ) 를 덮지 않을 경우 $ , 따옴표를 덮을 경우 # 을 붙이자. 이도저도 아닐경우 #을 사용하자. (참조 27 줄)
SELECT문만 예제 소스로 작성했지만, INSERT 나 UPDATE , DELETE 등을 예제를 참조하여 사용하면된다.
<!-- 넘겨줄 데이터 설정 --> <resultMap id="result-post-time" class="ParkingModel"> <result property="post_time_idx" column="post_time_idx" /> <result property="post_time_stime" column="post_time_stime" nullValue="0" /> <result property="post_time_etime" column="post_time_etime" nullValue="0" /> <result property="post_time_num" column="post_time_num" nullValue="0" /> <result property="worker_idx" column="worker_idx" /> <result property="time_idx" column="time_idx" /> <result property="time_title" column="time_title" nullValue="" /> </resultMap> <select id="select-post-time-array" parameterClass="hashMap" resultMap="result-post-time"> SELECT P.POST_TIME_IDX, P.POST_TIME_STIME, P.POST_TIME_ETIME, P.POST_TIME_NUM, P.WORKER_IDX, P.TIME_IDX, T.TIME_TITLE FROM PARKING_POST_TIME P LEFT OUTER JOIN PARKING_COMMON_TIME T ON P.TIME_IDX = T.TIME_IDX <!-- where 문이 없을 경우 동적으로 삽입 --> <dynamic prepend="WHERE"> <!-- worker_idx_ar 존재할 경우 --> <isNotEmpty prepend="AND" property="worker_idx_ar"> <iterate prepend="P.WORKER_IDX IN " property="worker_idx_ar" open="(" close=")" conjunction=","> $worker_idx_ar[]$ </iterate> </isNotEmpty> </dynamic> ORDER BY P.POST_TIME_NUM ASC </select>
728x90
반응형
'개발노트 > MyBATIS & iBATIS' 카테고리의 다른 글
iBATIS DBCP 사용하기 (1) | 2010.04.15 |
---|---|
자바 iBATIS 결과를 XML 리턴받기 : xmlResultName , java , xml (3) | 2010.01.11 |
Log4j 를 이용해 로그 출력하기. : iBATIS (2) | 2009.11.28 |
iBATIS 동적 WHERE 절 다루기 위한 요소 설명 (0) | 2009.04.17 |