MyBatis bind tag. 동적 SQL 구현
MyBatis에서 SQL을 동적으로 작성할 때 유용한 에 대해 간단하게 정리해보았다.
MyBatis에서 SQL을 동적으로 작성할 때 유용한 에 대해 간단하게 정리해보았다.
들어가며 현재 투입되어있는 프로젝트의 서비스 중에는 특정 데이터를 조회할 수 있는 화면이 있습니다. 그런데 이 화면을 사용하게되는 업무 특성상 데이터를 일일이 하나씩 조회하기가 번거롭다는 불편사항이있어 이를 한번에 다중 검색 가능하도록 수정 조치하였고, 당시 작업내용을 핵심부분만 간략하게 정리하였습니다. 기존 방식 mapper.xml <sql id="ticketSearch"> <if test="(method_info != null and method_info != '')"> <if test="method_id == 'gkId'"> AND GK_ID = #{method_info} </if> <if test="method_id == 'parentTicketId'"> AND UPPER(PRNT_TKT_ID) LIKE CONCAT('%',UPPER(REPLACE(#{method_info}, '_', '#_')),'%') ESCAPE '#' </if> <if test="method_id == 'ticketId'"> AND UPPER(TKT_ID) LIKE CONCAT('%',UPPER(REPLACE(#{method_info}, '_', '#_')),'%') ESCAPE '#' </if> <if test="method_id == 'guid'"> AND GUID LIKE CONCAT('%',#{method_info},'%') </if> </if> </sql> <select id="list" parameterType="map" resultMap="ticketVO"> SELECT 컬럼 1, 컬럼 2, 컬럼 3 FROM 테이블 A WHERE DEL_YN_FG = 'N' <include refid="ticketSearch"/> </select> ▲ 화면에서 입력한 문자열 1개를 포함하고있는 데이터를 “like” 검색을 통한 단일 조회 방식 ...