Database

[myBatis] include refid - 반복되는 쿼리 묶기

k9e4h 2017. 5. 12. 10:43

refid(reference id)는 반복되는 쿼리를 미리 작성해 놓고 재활용 할 수 있게 해준다.

 

반복할 쿼리 선언 : <sql id=""> 

선언한 쿼리 사용 : <include refId="">

변수 사용 방법 <property name="">

작성 예시

<mapper>
  
<sql id="test_a">
      SELECT * 
   FROM TABLE
</sql>
  
<sql id="test_b">
      SELECT * 
   FROM TABLE
   WHERE ${param1}
</sql>
  
  <select id="getListA" resultType="hashmap">
      <include refid="test_a" />
      WHERE filed = #{value}
  </select>
  
<select id="getListB" resultType="hashmap">
      <include refid="test_b">
       <property name="param1" value="value">
      </include>
      WHERE filed = #{value}
</select>
  
</mapper>

 

쿼리 실행 결과

getListA, getListB 의 출력 결과 동일

1
2
3
SELECT * 
  FROM TABLE
 WHERE filed = #{value}
cs

 

반응형

'Database' 카테고리의 다른 글

[MyBatis] #, $ 차이  (1) 2017.06.15
SQL에서 행을 열로 바꾸는 방법  (0) 2017.05.15
[MYSQL] 빈 ROW 생성  (0) 2017.03.30
MYSQL SEQ가 포함된 Code 만들기  (0) 2017.03.10
샤딩(Sharding)과 파티셔닝(Partitioning)  (0) 2017.02.22