2012-02-08 2 views
0

mybatis xml 선택적 매개 변수를 사용하여 저장 프로 시저 호출을 설명하는 방법이 궁금합니다. 예를 들어 :선택적 매개 변수가있는 MyBatis 저장 프로 시저 호출

DAO

public List getMethod1(Object arg1) { 
     Map<String, Object> map = new HashMap<String, Object>(); 
     map.put("arg1", arg1); 
     return selectList("myBatisSelect", map); 
} 

public List getMethod1(Object arg1, Object arg2) { 
     Map<String, Object> map = new HashMap<String, Object>(); 
     map.put("arg1", arg1); 
     map.put("arg2", arg2); 
     return selectList("myBatisSelect", map); 
} 

XML

<select id="myBatisSelect" 
      parameterType="map" 
      resultType="MyResultObject"> 
      CALL sql_stored_procedure 
      (
       @arg1= #{arg1} 
       <!-- How to add optional parameter here??--> 
      )  

    </select> 

답변

1

당신은 동적 SQL을 생성하기 위해 조건부 논리를 사용할 수 있습니다. 즉

<select id="myBatisSelect" 
     parameterType="map" 
     resultType="MyResultObject"> 
     CALL sql_stored_procedure 
     (
      @arg1= #{arg1} 
      <if test="arg2 != null"> 
        ,#{arg2} 
      </if> 
     )  

</select> 

MyBatis3 User Guide

더 많은 정보를 갖는다.

관련 문제