반응형
List로 선언된 parameter를 MyBatis에서 for문으로 조회하는 방법을 알아봅시다.
@Builder
@Data
@NoArgsConstructor
@AllArgsConstructor
public class CO2ZeroRequest implements Request {
@ApiModelProperty(value = "",required = true,example = "서울특별시")
private String param1;
@ApiModelProperty(value = "",required = true,example = "강남구")
private String param2;
@ApiModelProperty(value = "",required = false,example = "압구정동")
private List<String> param3;
}
아래의 태그를 활용하면 되는데,
<foreach collection="List or Array" item="alias" ></foreach>
예시는 아래와 같습니다.
SELECT
COLUMN1 AS cnp_cd,
COLUMN2 AS sgg_cd,
COLUMN3 AS emd_cd
FROM
TABLE1
WHERE
COULMN1 = #{param1}
AND COLUMN2 = #{param2}
<choose>
<when test="param3 == null">
</when>
<when test="param3 == ''">
AND COLUMN3 = #{param3}
</when>
<when test="param3.size == 0">
AND COLUMN3 = ''
</when>
<otherwise>
AND COLUMN3 IN
<foreach collection="param3" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</otherwise>
</choose>
GROUP BY
COLUMN1, COLUMN2, COLUMN3
choose문은 null처리를 위해 사용된 태그이고
맨 마지막 otherwise 태그 내부를 보시면 되겠네요.
- collection : List형태로 넘어온 파라미터명을 작성
- item : 별명 부여
- open/close : 위에 보시면 여러개의 파라미터가 한번에 조회되어야 하기때문에 COLUMN3 IN 으로 작성되었죠?
IN뒤에 붙을 괄호를 여기서 설정해준다고 보시면 됩니다.
- separator : 괄호 안에서 파라미터1,파라미터2,파라미터3,...,파라미터n 으로 컴마를 찍어주기 위함
이렇게 태그 설정을 입력해주고, foreach 태그 내부에는 별명으로 된 파라미터를 작성해 주면 끝! -> #{item}
728x90
반응형
'Coding > Back-end' 카테고리의 다른 글
[postgreSql] WITH절로 복잡한 join 쿼리를 대신하기 (0) | 2023.10.27 |
---|---|
[postgreSql] generate_series로 날짜 더미데이터 만들기 (1) | 2023.10.27 |
[SQL] where절 조회조건 무효화 시키기(와일드카드 % 활용) (0) | 2023.10.25 |
[Linux] vi/vim 노멀모드(커맨드모드) 이동키 (update:2023-10-25) (0) | 2023.10.25 |
[Linux] vi/vim 자주쓰는 명령어 모음 (update:2023-10-25) (0) | 2023.10.25 |