DEV-ON IN 쿼리 방법

DEV-ON 2022. 9. 17. 13:02

기본적으론 ibatis와 유사하다.

 

자바단에서 파라미터를 list로 만든 다음.

dao호출시 넘겨줌.

List<String> list = new ArrayList<String>();

list.add("A001");
list.add("A002");
list.add("A003");

LData data = null;
data.set("deptList", list);

 

 

1. 방법1

<![CDATA[

SELECT 
*
FROM
emp
WHERE 
	1=1
    {#1}
]]>
<append condition="${deptList}.NOTEMPTY" id="#1">
<![CDATA[
	AND dept IN (${deptList:IN})
]]>
</append>

 

2. 방법2

<![CDATA[

SELECT 
*
FROM
emp
WHERE 
	1=1
    AND dept IN ({#1})
]]>
<append condition="${deptList}.NOTEMPTY" id="#1", iterate="${deptList", conjunction=",">
 ${deptList:NOT}
</append>

 

 

블로그 이미지

엘로드넷

댓글을 달아 주세요

DEV-ON에서 SQL 배열처리(iterate)

 

1. MSSQL PIVOT의 파라미터는 대괄호로 묶어서 전달됨.

[검색어]

 

2. 정적쿼리

<statement name="empList">

<![CDATA[
SELECT * FROM (
    SELECT 

        empno,
        age,
        dept

    FROM

        EMP

    WHERE 
    	1=1
 	) AS result
    PIVOT (
    	SUM(age)
        FOR 
        dept IN ([A001], [A002], [A003])
     ) as pivot_result
]]>

</statement>

 

 

 

 

3. 동적쿼리

파라미터를 자바단에서 조작(대괄호를 미리 넣어줌)

 

List<String> list = new ArrayList<String>();

list.add("[A001]");
list.add("[A002]");
list.add("[A003]");

LData data = new LData();
data.set("deptList", list);

LCommonDao dao = new LCommonDao("/empList", data, "DS");
LMultiData result = dao.executeQuery();
<statement name="empList">

<![CDATA[
SELECT * FROM (
    SELECT 

        empno,
        age,
        dept

    FROM

        EMP

    WHERE 
    	1=1
 	) AS result
    PIVOT (
    	SUM(age)
        FOR 
        dept IN {#1}
     ) as pivot_result
]]>

<append condition="${deptList}.NOTEMPTY" id="{#1}"  iterate="${deptList}" conjunction=",">
   ${deptList}
</append>

</statement>

 

 

'DEV-ON' 카테고리의 다른 글

Dev-on 프레임워크 프로시저 xml return param  (0) 2022.11.04
DEV-ON IN 쿼리 방법  (0) 2022.09.17
블로그 이미지

엘로드넷

댓글을 달아 주세요