Java Jsp Mybatis Dynamic Query
동적쿼리
동적쿼리란?
- db 데이터를 crud할 때 조건이 변할 수 있다
- 제목으로 게시물 검색, 작성자이름으로 게시물 검색이 있을 때 조건이 제목, 작성자 이름 둘 중하나로 바뀐다
- 이 때 조건이 계속 바뀌므로 동적 쿼리를 사용해서 조회해야한다
- 아래 예제에서 foreach는 조건이 여러개일 때(ex 체크박스) 사용한다
- collection은 foreach로 돌때마다 선택되는 객체를 의미한다. area 객체 개수만큼 foreach문이 돈다
- item은 구분하기 위한 임의의 이름이다
- separator은 반복되는 사이에 출력할 구문이다
Source
<select id="listBoard" resultType="Board" parameterType="Search">
select * from board
<if test="area">
<where>
<!--( title LIKE %aa% OR writer LIKE %aa% )-->
<foreach collection="area" item="item222" separator="OR" open='(' close=')'>
<!-- $로해줘야한다 상수처럼 리터럴 상수처럼 사용되어야 한다. 변수가 되면 안되기 때문에 #->$ -->
${item222} LIKE #{searchKey}
</foreach>
</where>
</if>
</select>