mybatis (foreach문, in절)

2017.06.10 17:46

가을의곰 조회 수:407

mybatis (foreach문, in절)

Spring 과 mybaits 사용시 in 에 조건을 넣기 위해 foreach를 사용합니다.

 

그리고 조건 데이터를 넘겨줄때는 parameter에 리스트로 전달하면 됩니다.

 

하지만 일반적으로 in 에 들어가는 조건 이외에 단순한 String 값도 같이 넣어 조회 하게 됩니다.

 

방법은 Map을 선언시 <String, Object> 로 선언하고 Object에 list를 넣어주고 query 부분에서 리스트를 foreach 돌려 사용하면 됩니다.

 

아래 소스를 보시면 이해하기 쉬울껍니다.

 

 

DAO 부분에서 책 정보를 가져오도록 작성

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

public List<Books> getBooksInfo() {

             

    Map<String, Object> param = new HashMap<String, Object>();

    param.put("id", "1"); //#{id}에 셋팅

    param.put("name", "victor"); //#{name}에 셋팅

     

    List<String> codeList = new ArrayList<String>();

    codeList.add("01"); //in 조건에 넣을 정보

    codeList.add("05");

     

    param.put("code_list", codeList); //map에 list를 넣는다.

     

    return sqlSession.selectList("selectBooksInfo", param);

     

}

 

query xml 부분에서 foreach 로 in절에 리스트를 돌림

1

2

3

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

<select id="selectBooksInfo" resultType="kr.co.husk.Books" parameterType="java.util.HashMap">

    select

        price,

        discount_price

    from

        books

    where

        id = #{id}

        and name = #{name}

        <choose>

            <when test="code_list.size != 0">

                and book_code in

                <foreach collection="code_list" item="item" index="index" separator="," open="(" close=")">

                    #{item}

                </foreach>

            </when>

        </choose>

</select>

 

위에 작성한 프로그램이 제대로 실행되면 아래와 같은 쿼리가 실행 되겠죠.

 

select

price,

discount_price

from

books

where

id = '1' 

and name = 'victor'

and book_code in ('01','05')

 

[출처] http://huskdoll.tistory.com/507

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
46 전자정부 표준프레임워크 - CKEditor 적용하기 file 졸리운_곰 2018.01.11 568
45 IntelliJ에서 SpringBoot 웹 프로젝트 생성하기 file 졸리운_곰 2017.11.14 222
44 파라미터 전송 - GET, POST 방식 file 졸리운_곰 2017.09.26 123
43 Velocity Template Engine 시작하기 file 졸리운_곰 2017.09.26 91
42 Migrating a Spring Web MVC application from JSP to AngularJS file 졸리운_곰 2017.09.26 68
41 [톰캣] server.xml 설정 file 졸리운_곰 2017.09.24 352
40 톰캣의 컨텍스트 외부로 경로 매핑하는 방법 졸리운_곰 2017.09.24 171
39 프레임 나뉜 페이지에서 새로고침시 페이지 유지하기 졸리운_곰 2017.09.17 77
38 [Spring] 한국거래소의 주가 정보 가져오기 졸리운_곰 2017.08.10 416
37 [Ibatis] 부등호 <, > 의 표시 졸리운_곰 2017.07.06 193
36 동적 SQL mybatis 가을의곰 2017.06.10 116
35 [mybatis] foreach를 이용한 다중 insert 가을의곰 2017.06.10 413
» mybatis (foreach문, in절) 가을의곰 2017.06.10 407
33 SW 릴리스를 간편하게 - Maven plugin + Jenkins file 졸리운_곰 2017.03.20 103
32 Migrating Spring Web MVC from JSP to AngularJS file 졸리운_곰 2017.02.07 207
31 Migrating a Spring Web MVC application from JSP to AngularJS file 졸리운_곰 2017.02.07 1513
30 Spring and Angular JS: A Secure Single Page Application 졸리운_곰 2017.02.06 426
29 스프링부트 소개 졸리운_곰 2017.02.06 190
28 Spring boot 시작하기 졸리운_곰 2017.02.06 247
27 [Java]Spring Boot를 사용한 web어플리케이션 만들기 file 졸리운_곰 2017.02.06 171
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED