본문 바로가기

mybatis3

[Database] Mybatis 다량 Row 한번에 Insert 하는 법 개요10만번의 insert를 할 경우 232초가 걸렸다. 10만번의 DB I/O 시간 때문인데, UX관점에서 좋지 않았다.I/O 횟수 단축을 위해 다량의 데이터를 한 번에 insert하는 방법을 찾았다.방법 1insert의 values 구문에 여러 개의 데이터 Row를 넣는다.기존insert into dataset(ID, FIRSTNAME, LASTNAME, EMAIL)values(1, "Gomgom", "Kim", "abc@naver.com")다중 insertinsert into dataset(ID, FIRSTNAME, LASTNAME, EMAIL)values(1, "Gomgom", "Kim", "abc@naver.com"),(2, "Gomgom2", "Kim", "abc2@naver.com"),(3,.. Database 2022. 12. 8.
[Spring] Mybatis collections 파라미터 여러개 사용 시 주의점 개요collections 사용 시 parameter를 여러 개 사용하는데 오류가 났다. mapper xml 같은 경우 요류를 정확히 알려주지 않기 때문에 확실한 개념으로 정확히 구현하는 것이 중요하다. 이 글을 통해 오류 해결 방법을 알아보자.원인 이처럼 column을 통하여 parameter를 여러 개 주었는데  서브 쿼리 함수에서 int로 받은 것이 원인이었다. 바보 같았다.해결collections 사용 시 parameter를 여러 개 사용할 때 서브 쿼리의 parameterType을 map으로 지정해야 한다.  파라미터가 여러 개 이므로 타입을 map으로 바꿔주니 해결됐다. Spring 2021. 6. 28.
[Spring] MyBatis resultMap collection 사용법 개요mybatis에서 테이블 간의 1:N 관계를 select 할 때 resultMap의 collection을 활용하여 서브쿼리 형식으로 데이터를 가져올 수 있다.사용 경험담서브 쿼리를 직접 구현하지 않아도 되는 점에서 편리했다.배달대행 관제 웹 프로젝트에서 라이더 별로 배차받은 주문 리스트를 갖고 오는 데 활용했다소스 예제DTO 설정@Getter@Setterpublic class Rider{ private Integer userIdx; ... 중략 private List orders;} 서브쿼리 id 입력 ... 중략 select ... 컬럼들 from ... 테이블 where a.USER_IDX = #{userIdx,jdbcType=INTE.. Spring 2021. 6. 18.