중복쿼리문 처리

<sql>, <include>사용.

  1. 중복 쿼리문을 sql노드에 작성.
    <sql id="">
    중복쿼리문 작성
    </sql>

  2. 필요한 위치에서 include로 포함.
    <include refid="아이디"/>

예)

1. 중복쿼리문 작성
<sql id="selectEmp">
  select empno, ename, to_char(sal,'99,999') sal
  from emp
</sql>

2. 사용
  <select id="sel1" resultType="EmpDomain" parameterType="int">
    <include refid="selectEmp"/>
    where deptno=#{deptno}<!--where절을 selectEmp에 적어도 됨 -->
  </select>
  <select id="sel2" resultType="EmpDomain" parameterType="EmpVO">
    <include refid="selectEmp"/>
    where empno=#{empno} and deptno=#{deptno}
  </select>

like

like의 특수문자인 %와 자바의 bind변수 ?가 함께 연결되면 자바의 bind변수를 인식하지 못한다.

where 컬럼명 like %?% - 인식불가

  • 해결방법
    %를 일반문자열로 만들고 ||를 사용하여 붙여서 사용한다.
    where 컬럼명 like '%'||#{ 컬럼명 }||'%'

0개의 댓글