목적
다중 check box 검색필터를 사용할때
여러가지 값들을 array에 담아 보낼때
쿼리는 ex) office IN (’의자’, ’책상’, ‘마우스’)
이런 IN안에 넣어서 출력을 해야할 때가 있을 수 있다,
그럴때 사용한다
jsp에서 dp_code라는 name값으로 선택된 다수의 value를 쿼리로 보낼 것이다.
<div class="chkbox-key6">
<h6>사무실</h6>
<input type="checkbox" name="dr_code" value="TOTAL_DP" id="searchCode_DR_all">
<label for="searchCode_DR_all" class="checkbox">전체</label>
<input type="checkbox" name="dr_code" value="DR1001" id="searchCode_DR_1">
<label for="searchCode_DR_1" class="checkbox">의자</label>
<input type="checkbox" name="dr_code" value="DR1002" id="searchCode_DR_2">
<label for="searchCode_DR_2" class="checkbox">책상</label>
<input type="checkbox" name="dr_code" value="DR1006" id="searchCode_DR_6">
<label for="searchCode_DR_6" class="checkbox">마우스</label>
</div>
java에서 원하는 조건에 따라 dr_code를 set해서 ibatis.xml의 dr_code_array값으로 보낼것이다
//office값 array로 받아서 set하기
if(namuBean.getDr_code() != null){
String dr_code = namuBean.getDr_code();
dr_code = dr_code.replaceAll(" ", "");
String[] dr_code_array = dr_code.split(",");
namuBean.setDr_code_array(dr_code_array);
}
namuBean.setDr_code(namuBean.getDr_code());
System.out.println("::: dr_code => "+namuBean.getDr_code());
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap namespace="office">
<typeAlias alias="officeBean" type="model.office.bean.officeBean" />
<select id="getFurnitureList" parameterClass="officeBean" resultClass="officeBean">
/*getFurnitureList리스트 출력*/
SELECT
a.furniture_seq,
a.dr_code,
FROM
tb_furniture a
<isNotEmpty property="dr_code">
<isNotEqual property="dr_code" compareValue="TOTAL_DR">
AND dr_code IN
<iterate property="dr_code_array" open="(" close=")" conjunction=",">
#dr_code_array[]#
</iterate>
</isNotEqual>
</isNotEmpty>
</select>
</sqlMap>
'언어 > Ibatis' 카테고리의 다른 글
[ibatis + MySQL] 다중 쿼리 한번에 보내는데 문법오류 날때 (0) | 2025.02.23 |
---|---|
[ibatis + MySQL] 동적쿼리 - isNotEmpty 사용법 (0) | 2025.02.23 |