본문 바로가기

반응형

분류 전체보기

(41)
MyBatis 대량 데이터 INSERT - SqlSessionFactory 이용! 2022.02.21 - [개발/DB] - [Oracle] 대량 데이터 insert 하기. UNION ALL 사용. [Oracle] 대량 데이터 insert 하기. UNION ALL 사용. 나의 상황 : 대량의 데이터를 테이블에 insert 해야하는 상황. (대부분 1000건 정도의 데이터지만 간혹 10000건 이상의 데이터도 insert 해야함.) 생각 과정 : 1. service 단에서 for 문을 이용하여 insert 요 jy-note.tistory.com 위의 이전에 작성한 글을 보면 대량 데이터를 insert 하기 위해 노력을 했었는데.. 몇 만건 정도는 끄떡없었지만 이번에 테스트 데이터를 3000만건을 넣고 돌렸더니 문제가 생겼다..슬퍼.. 어쨋든 connection 이 여러번 생기니까 서버가 ..
Spring 비동기 처리 @Async 어노테이션 사용 상황 : jdk 1.6, 스프링 4.X 사용 중. 찾아보니 jdk1.5 ~ 스프링 3.2 부터 @Async 사용 가능한 것 같음. 사용 : 1) 설정 : AsyncConfig.java 파일 생성 (더 이상 해야할 설정도 없음. 간단) @Configuration 사용해 bean 등록 @EnableAsync 사용해 비동기 메소드 실행 기능 활성화 import java.util.concurrent.Executor; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.AsyncConfigurerSupport; import org.springframework.schedu..
[Oracle] 대량 데이터 insert 하기. UNION ALL 사용. 나의 상황 : 대량의 데이터를 테이블에 insert 해야하는 상황. (대부분 1000건 정도의 데이터지만 간혹 10000건 이상의 데이터도 insert 해야함.) 생각 과정 : 1. service 단에서 for 문을 이용하여 insert 요청 계속 날리기.. vs SQL 에 foreach를 사용하여 한번에 insert 하기. -> 적은 건수면 서비스로직에서 해도 상관없겠지만 건 수가 많으면 connection 문제가 생길 거 같았다. 속도차이도 많이 날 것이라 생각해서 패쓰. (직접 테스트해보신 글을 발견해 첨부한다. https://yzink.tistory.com/50 역시나 속도차이가 많이 난다!) 2. SQL 에서 foreach를 사용해서 한번에 insert 하겠다고 결정. 3. INSERT ALL ..
nested exception is org.apache.ibatis.binding.BindingException: Parameter 'fromDate' not found. 나의 상황 : date 타입의 값 fromDate, toDate 두개를 넘겨서 쿼리를 조회하고 싶은 상황. List selectListForStat(Date fromDate, Date toDate); 해결 : 매개변수에 @Param 을 추가하여 SQL 을 읽을 때 해당 데이터가 어떤 것인지를 명시해준다. List selectListForStat(@Param("fromDate")Date fromDate, @Param("toDate")Date toDate); 원인 : MyBatis 를 이용한 SQL Mapper 는 메서드당 하나의 파라미터만 읽는다고 한다. VO 를 이용했을때는 VO 하나로 여러개의 객체를 바인딩했기때문에 여러 파라미터를 쓸 수 있었던 것..! 참고 : https://awse2050.tist..
COOKIE(쿠키)에 ID 값 저장하기. ID 저장 체크박스 만들기. 1. html 에 체크박스 그려주기. ID 저장 2. javascript //쿠키값 set function setCookie(cookieName, value, exdays){ let exdate = new Date(); exdate.setDate(exdate.getDate() + exdays); let cookieValue = escape(value) + ((exdays == null) ? "" : "; expires=" + exdate.toGMTString()); document.cookie = cookieName + "=" + cookieValue; } //쿠키값 delete function deleteCookie(cookieName){ let expireDate = new Date(); expire..
log4j2 + slf4j 설정하기 ( + lombok) - 새로운 프로젝트의 프레임워크 셋팅을 담당하게 되었다. 로그 관련 설정을 log4j2 와 slf4j 를 쓰라고 하셔서 셋팅해보게 되었다. 1. 라이브러리 추가 pom.xml 에 log4j2 와 slf4j 의 의존성을 추가해준다. 나는 @Slf4j 어노테이션도 함께 쓰고싶어서 lombok도 추가! //버전 관리를 위해 properties 에 버전명을 따로 선언해둔다. 아래에 ${slf4j.version} 을 작성하면 여기 명시된 버전이 들어가므로 유지보수에 편리하다. 1.7.32 2.16.0 2.16.0 org.slf4j slf4j-api ${slf4j.version} compile org.slf4j jcl-over-slf4j ${slf4j.version} org.slf4j log4j-over-slf4j..
Spring HandlerInterceptorAdapter deprecated 해결. - 나의 상황 : spring 4.x 버전에서 5.3.2 버전으로 업그레이드했음. 기존에 로그를 남기기 위해 추가되어있던 interceptor 에서 extends 해오던 HandlerInterceptorAdapter 를 가져오지 못하는 상황 - 원인 : spring 5.3 이상 버전에서는 HandlerInterceptorAdapter 를 더이상 사용하지 않는다고 함. - 해결 : as of 5.3 in favor of implementing HandlerInterceptor and/or AsyncHandlerInterceptor directly. -> HandlerInterceptor 나 AsyncHandlerInterceptor를 implements 하여 사용하면 된다. * 기존에 extends Han..
[Spring] @Valiated, BindingResult 사용하여 데이터 유효성 검증하기 서버에서 데이터를 바인딩할때, 데이터의 유효성을 검증하기 위해 @Validated 어노테이션을 이용할 수 있다. BingdingResult 를 함께 사용하여 유효성 검증 오류를 처리할 수 있다. @Valid 와 @Validated 의 차이는 이전 글을 작성해뒀다! [Spring] @Valid 와 @Validated 차이 기존에 스프링은 유효성 검증을 위해 @Valid 어노테이션을 제공했음. 그런데 같은 객체 내의 파라미터들을 그룹핑하여 특정 상황에 맞게 유효성 검증을 하기 위해 @Validated 가 추가되었다. ex) 회원 jy-note.tistory.com 이번 글에서는 @Validated 에 추가된 기능인 그룹핑을 하여 데이터 유효성 검증하는 걸 정리할 것이다. 만약 그룹핑하지않고 그냥 검증한다면 ..

반응형