Mybatis 다 중 조건 으로 일괄 삭 제 된 sql 구문

오늘 코드 를 쓰 는 과정 에서 일괄 삭제 에 대한 수요 가 있 으 며,이 삭제 조건 은 세 필드 로 구 성 된 연합 키 입 니 다.처음에 우리 초보 자 들 은 service 층 에서 for 순환 을 사용 하여 mapper 층 의 삭제 방법 을 여러 번 호출 하 는 것 을 생각 할 수 있 습 니 다.이렇게 하면 기능 을 실현 할 수 있 지만 소모 하 는 시스템 자원 이 많 고 효율 이 높 지 않 습 니 다.저도 인터넷 에서 찾 아 봤 는데 이런 예 가 매우 적 다 는 것 을 발 견 했 습 니 다.그래서 저 는 이번 코드 를 붙 였 습 니 다.참고 만 하 겠 습 니 다.코드 는 다음 과 같 습 니 다:
<delete id="deletePubPrintTmplComputers" parameterType="java.util.List">
            delete from PUB_PRINT_TMPL_COMPUTER
            <foreach collection="listData" item="item" separator="or" index="index">
                <where>
                    <if test="item.tmplCode != null">
                        and TMPL_CODE = #{
     item.tmplCode, jdbcType=VARCHAR}
                    </if>
                    <if test="item.tmplSeq != null">
                        and TMPL_SEQ = #{
     item.tmplSeq, jdbcType=INTEGER}
                    </if>
                    <if test="item.computerCode != null">
                        and COMPUTER_CODE = #{
     item.computerCode,jdbcType=VARCHAR}
                    </if>
                </where>
            </foreach>
    </delete>

여 기 는 foreach 문법 을 사용 하여 대량 작업 을 하 는 것 입 니 다.특히 주의해 야 할 것 은 모든 if 판단 에서 조건문 끝 에 쉼표 를 붙 이지 마 십시오.그렇지 않 으 면 오류 가 발생 하여 sql 명령 이 제대로 끝나 지 않 았 음 을 표시 합 니 다.자,여기까지 기록 하 겠 습 니 다.코드 를 계속 두 드 리 러 가 겠 습 니 다.여러분 의 댓 글 을 환영 합 니 다.2020/6/16 14:35:28

좋은 웹페이지 즐겨찾기