Foreach는 주로 조건을 구축하는 데 사용되며 SQL 문의 컬렉션을 반복 할 수 있습니다. Foreach 요소의 속성에는 주로 항목, 인덱스, 수집, 개방형, 분리기 및 닫기가 포함됩니다. 항목은 컬렉션의 각 요소가 반복 될 때 별칭을 나타냅니다. 색인은 반복 프로세스 중에 각 반복에 도달하는 위치를 나타내는 이름을 지정합니다. Open은 문으로 시작하는 것을 나타내고, 분리기는 각 반복 사이의 분리기로 사용되는 기호를 나타내며, 닫기는 끝을 나타냅니다. Foreach를 사용할 때 가장 중요하고 오류가 발생하기 쉬운 것은 수집 속성입니다. 이 속성은 지정되어야하지만 다른 경우 속성의 값이 다릅니다. 세 가지 주요 상황이 있습니다.
전달 된 것이 단일 매개 변수이고 매개 변수 유형이 목록이면, 수집 속성 값은 목록입니다.
전달 된 것이 단일 매개 변수이고 매개 변수 유형이 배열 인 경우 컬렉션의 속성 값은 배열입니다.
전달 된 여러 매개 변수가있는 경우 맵을 맵으로 캡슐화해야합니다. 물론 단일 매개 변수를 맵으로 캡슐화 할 수도 있습니다. 실제로 매개 변수를 전달하면 mybatis의 맵으로 캡슐화됩니다. 맵의 키는 매개 변수 이름이므로 현재로서는 컬렉션 속성 값이 자체적으로 캡슐화 된 맵의 전달 된 목록 또는 배열 객체의 키입니다.
코드를 통해 연습합시다.
데이터 테이블 :
Oracle의 HR.employees 테이블 사용
엔티티 : 직원
공공 계급 직원 {개인 정수 직원; 개인 문자열 firstName; 개인 문자열 마지막 이름; 개인 문자열 이메일; 개인 문자열 phoneNumber; 개인 날짜 고용; 개인 문자열 jobid; 사적 큰 급여; 개인 대도시위원회; 개인 정수 관리자; 개인 짧은 부서의 경우;}매핑 파일 :
<!-목록 : 컬렉션 속성 유형은 List입니다. 수집 값은 다음과 같아야합니다. 목록, 항목 값은 임의적 일 수 있고, DAO 인터페이스의 매개 변수 이름은 임의적입니다.> <getemployeeslistParams "getemployeeslistParams"resultType = "Employee_id에서 e.employee_id" "index =" "index =" "index =" "index =" "" Separator = ","> # #{EmployeeId} </foreach> </select> <!-배열 : 배열 : 컬렉션 속성 유형은 컬렉션의 값이 배열이어야합니다. 컬렉션 값은 다음과 같아야합니다. 목록, 항목 값은 임의적 일 수 있고, DAO 인터페이스의 매개 변수 이름은 임의적이어야합니다.> <selecttype "getemeesarraypepe ="getemeeseRraype "> collection = "array"item = "EmployeeId"index = "index"al e <where> <if test = "departmentId! = null 및 departmentId! = ''" "> e.department_id =#{departmentId} </if> <test ="eployeeIdsArray! = null 및 EmployeeIdSarray.length! = 0 "> <foreach collection ="intoplyIdSarray ""index = "" "" "" Separator = ","> #{EmployeeId} </foreach> </if> </where> </select>맵퍼 클래스 :
공개 인터페이스 Employepsmapper {list <spection> getemployeeslistparams (list <string> EmployeeIds); List <plustions> getemployeesarrayparams (String [] EmployeeIds); List <Ec종> GetEmployEesmapparams (Map <String, Object> Params);}위는 Mybatis Set List 목록 배열 맵 매개 변수의 작성 방법에 대한 완전한 설명입니다. 나는 그것이 모두에게 도움이되기를 바랍니다!