mybatis 4

[Mybatis] Oracle foreach insert 처리 에러

필요성 : Mybatis의 foreach문을 통해 List 타입의 HashMap/Hashtable의 데이터를 insert 함으로써 다량의 데이터를 입력할 수 있다. Oracle 다중 데이터 insert INSERT ALL INTO TABLE명 (컬럼명...) VALUES (값...) INTO TABLE명 (컬럼명...) VALUES (값...) INTO TABLE명 (컬럼명...) VALUES (값...) . . . SELECT * FROM DUAL; Mybatis 상에서의 다중 데이터 insert (해당 데이터는 에러 발생함) INTO TEST_TABLE ( M_1, M_2 ) VALUES ( '${item.M_1}' , '${item.M_2}' ) 실행 해본 결과 ORA-00933 에러가 발생했다....

Programming/Mybatis 2022.02.16

[Mybatis] resultType 을 DTO 또는 VO 로 리턴 시 주의사항

DTO 클래스 또는 VO 클래스의 클래스 변수들의 이름을 데이터베이스의 컬럼명과 동일하게 해주어야 resultType이 DTO 또는 VO 일때, 해당 클래스로 반환된다. 예시 DTO 클래스 @Data public class UserDTO { private String user_email; private String user_pw; private String user_pwCnf; public String getUser_email() { return user_email; } public void setUser_email(String user_email) { this.user_email = user_email; } public String getUser_pw() { return user_pw; } public..

Programming/Mybatis 2021.12.06

[Mybatis] ParameterType List, Map 처리 (feat. foreach구문)

Rest API에서 8만개가 넘는 데이터를 DB에 넣어줄 일이 생겼다. 컨트롤러에서 insert를 for문으로 돌려보니 매우 비효율적이었고, 생각해보니 mapper에 파라미터를 list로 가져가면 되지않을까 하는 생각이 들어 찾아보니 역시 방법이 있었다.. +) 80,000개의 데이터를 for문으로 insert했을 땐 몇 분 걸렸던 처리가 15초만에 처리되었다... But.... 단점) insert를 한번에 처리하기 때문에 validation 에러가 났을 경우 모든 데이터가 insert 되지 않는다... Mapper 파라미터가 List일 경우 INSERT INTO T_BOARD ( TITLE , CONTENTS , DISPLAY_YN , EMAIL , REG_ID ) VALUES ( "${item.tit..

Programming/Mybatis 2021.11.26