티스토리 뷰

반응형

적용 이유

개인 정보 보호를 위해 고객 데이터를 삭제하는데 삭제 시간을 한번에 업데이트 할 필요가 있었다. 한 콜에 여러 업데이트를 할 수 있는 장점은 있지만 SQL 인잭션과 같은 이유로 보안상에는 좋지 않다.

 

환경

springboot 2.5.5

 

1. Mybatis 업데이트 쿼리

<update id="ID" parameterType="VO">
    <foreach collection="ListName" item="item" open="" close="" separator=";">
        UPDATE TABLE
        SET DELETE_DTTM = DATE_FORMAT(NOW(), '%Y%m%d%H%i%s')
        WHERE 1=1
            AND 고객정보1 = #{item.고객정보1}
            AND 고객정보2 = #{item.고객정보2}
    </foreach>
</update>

위의 쿼리를 살펴보면 parameterType에는 VO가 있는데 List 안에 VO 객체를 넣고 Mybatis에 전달하는 형태로 구현했다.

collection에는 리스트 변수명을 넣어주었다. 

List<VO> deleteTarget = mapperComponent.

 

2. allowMultiQueries=true

위의 쿼리를 실행하기 위해서는 해당 옵션을 true로 변경해줘야 한다. DB 자체에서 변경해줘야 할 수도 있지만 설정 파일인 application.yml를 아래와 같이 수정하였다.

jdbc:mysql://접속정보&allowMultiQueries=true

 

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함