티스토리 뷰
반응형
적용 이유
개인 정보 보호를 위해 고객 데이터를 삭제하는데 삭제 시간을 한번에 업데이트 할 필요가 있었다. 한 콜에 여러 업데이트를 할 수 있는 장점은 있지만 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
반응형
'Programming > Java' 카테고리의 다른 글
[Design Pattern] Singleton 패턴 (0) | 2023.12.15 |
---|---|
[SpringBoot] AOP를 활용하여 컨트롤러 메소드 단위 IP 제약 (0) | 2023.09.11 |
[Springboot] @ControllerAdvice 이용하여 NoHandlerFoundException처리 + thymeleaf (0) | 2023.09.08 |
[java] 싱글톤 기초 패턴 (0) | 2022.07.10 |
[Java] 참조형 변수에 대한 이해 (Reference Variable) (0) | 2021.08.29 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 정보보안
- Ai
- 시간초과
- lightsail
- 파이썬
- 리눅스
- 코딩테스트
- LangChain
- synflooding
- java
- linux
- 백준
- FastAPI
- 보안기사
- llm
- 카카오페이면접후기
- 보안
- springboot
- 딥러닝
- 프로그래머스
- 그리디
- t-test
- 우선순위큐
- 분산시스템
- 다이나믹프로그래밍
- 자료구조
- t검정
- Python
- 카카오페이
- 정보보안기사
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함