728x90
인수의 형태가 정해진 반복적인 작업을 할 때 mybatis에서 foreach 구문을 사용하여 반복문으로 처리가 가능하다.
아래 코드와 같이 list 또는 array형으로 받은 인수를
JAVA 코드
ModelAndView mv = new ModelAndView();
ArrayList<String> names = new ArrayList<String>();
names.add("홍길동");
names.add("홍길순");
names.add("김영희");
names.add("김철수");
names.add("단미");
mv.addObject("names", names);
mybatis구현체인 xml에서 foreach문을 사용하여 처리할 수 있다.
XML
<foreach collection="names" item="type" open="(" close=")" separator="or"> -- 경력
<choose>
<when test="type == '홍길동'.toString()"> -- 경력무관
name = #{type}
and test = "ddd"
</when>
</choose>
</foreach>
collcection : 배열 이름, mybatis에 직접적으로 전달한 변수명이다.
item : 배열 값, 배열 리스트에서 하나의 요소값을 나타낸다.
open, close : foreach문의 가장 바깥에 감싸지는 문자열
seperator : 요소와 요소 사이의 구분자
원래는 select문의 in ()을 사용하려고 만들어진 것 같으나;;
위 방식으로 where절에서 여러 조건을 한번에 처리할 수 있다.
추가로 java함수를 mybatis에서 사용하고 싶다면
"@패키지네임.클래스네임.메서드네임()"
이런식으로 사용이 가능하다.
728x90
'WEB > Mybatis' 카테고리의 다른 글
[마이바티스 에러/ Mybatis error] Mapped Statements collection does not contain value for ~ (0) | 2023.03.13 |
---|---|
[Mybatis] resultType string 결과 값 받기 (0) | 2022.11.04 |
[mybatis/mariaDB] auto increment값 가져오기 (0) | 2022.03.03 |