본문 바로가기
WEB/SQL

마이바티스 Mybatis foreach collection 사용하는 방법

by iiaii 2023. 4. 7.
반응형

아래는 조회된 List<Map<String, Object>>에서 COLUMN1 데이터를 가져와

List<String>에 담은 후,

Mybatis의 foreach collection을 사용하여 해당 데이터를 활용하는 예시입니다.

// 조회된 데이터를 List<Map<String, Object>> 타입으로 받아옴
List<Map<String, Object>> dataList = getDataList();

// 데이터에서 COLUMN1 필드값을 추출하여 리스트에 저장
List<String> column1List = new ArrayList<>();
for (Map<String, Object> data : dataList) {
    Object column1Value = data.get("COLUMN1");
    if (column1Value != null) {
        column1List.add(column1Value.toString());
    }
}

// 중복 제거
column1List = column1List.stream().distinct().collect(Collectors.toList());

// 파라미터에 저장
params.put("column1List", column1List);

<!-- column1List에 저장된 값을 활용하여 쿼리 작성 -->
AND COLUMN1 IN
<foreach collection="column1List" item="column1" open="(" close=")" separator=",">
    #{column1}
</foreach>

반응형