Dev/iBatis

[iBatis] 쿼리문 재사용 include

initializerr 2019. 5. 10. 11:13

iBatis에 쿼리를 작성할 때 <sql> 태그와 <include> 태그를 통해 쿼리를 재사용 할 수 있습니다.

상황에 따라 편하게 사용할 수 있을 것 같습니다.

SqlMap.xml에 여러 <statement>에 공통적으로 적용되는 내용이 있을 때.

예를 들어 조회쿼리 시 paging 처리 시 관련 조건이라던 지 [등록일시], [등록자], [수정일시], [수정자]와 같은 시스템 공통 컬럼에 대한 정보와 같이 여러 쿼리에 동일하게 적용되어야 하는 부분일 경우 분할 후 하나로 관리하게 되면 관리에 이점이 있을 것으로 생각됩니다.

 

SqlMap에 <sql>태그를 이용하여 공통으로 사용할 쿼리의 내용을 작성합니다.

<sql id = "systemCommon">

, SYS_REG_EMP_NO

, SYS_REG_DT

, SYS_CHG_EMP_NO

, SYS_CHG_DT

</sql>

 

그리고 사용될 쿼리에 위에 공통으로 작성한 <sql>태그를 <include>태그로 삽입 후 refid로 참조하면 됩니다.

<select id="selectInfo" resultClass="map" parameterClass="map">

SELECT

  BOARD_NO

, BOARD_TITLE

, BOARD_DESC

<include refid="systemCommon"/>

</select>