안녕하세요 상훈입니다.
Spring, MyBatis 에서 여러 가지의 쿼리를 만들어놓고 부품처럼 이거 쓰고 저거 쓰고 할 때 사용하는 방법입니다.
<select id="selectListPage"
parameterType="a.b.c.ABCDTO"
resultType="a.b.c.ABCDTO"
>
<include refid="COMMON.pagingPreSQL" />
<include refid="listPage" />
<include refid="COMMON.pagingPostSQL" />
</select>
여기서 주의할 점!
include refid = "" 작성시,
1. 같은 파일 내의 쿼리를 작성하면 listPage 와 같이 작성.
2. 다른 파일 내의 쿼리를 가져다가 사용하려면, 해당 mapper 의 namespace 를 체이닝으로 작성해주세요. COMMON.pagingPreSQL 와 같이 작성
/*기본 목록 조회 */
<sql id="listAdmUserBas" >
SELECT USER_ID /* 사용자아이디 */
, DESIG_IP /* 지정IP주소 */
, USER_PWD /* 사용자비밀번호 */
FROM 테이블명
WHERE 1=1
<if test='userId != ""'> <!-- 사용자 아이디가 있을 경우 -->
AND USER_ID LIKE CONCAT('%',#{userId},'%')
</if>
<if test='desigIp != ""'> <!-- 지정 아이피가 있을 경우 -->
AND DESIG_IP LIKE CONCAT('%',#{desigIp},'%')
</if>
<if test='brofcCd != ""'> <!-- 코드가 있을 경우 -->
AND BROFC_CD LIKE CONCAT('%',#{brofcCd},'%')
</if>
</sql>
각 기능을 담당하는 쿼리는 메인 쿼리로직과는 다른점이 있는데요,
1. 각 기능에 대한 쿼리는 모두 <sql> 태그로 설정
2. parameterType, resultType 을 작성하지 않습니다.
이상입니다.
도움이 되셨다면, 여유롭게 커피 한 잔 사주시면 감사합니다~
댓글 영역