문제 상황JPA의 saveAll()을 이용하여 600건의 데이터를 저장하는 기능을 만들었다. 실제 결과는 300건만 저장되고 있었다. 원인JDBC 기본 배치 크기는 따로 설정하지 않은 경우 한번에 처리될 수 있는 개수가 제한되어 있음 해결방법1 - 배치 크기 설정application.properties에 설정을 통해 배치 크기를 조정할 수 있다.단, 키 생성 전략으로 IDENTITY 방식을 사용하면 사용할 수 없다. 영속성 컨텍스트 내부에서 엔티티 식별을 위해 PK값을 사용하는데 IDENTITY 방식은 DB에 INSERT한 후에 PK 확인이 가능하기 때문이다.spring.jpa.properties.hibernate.jdbc.batch_size=2000spring.jpa.properties.hibernat..
파일 구조 ㄴconfig ㄴApplicationConfig.java ㄴDBConfig.java ㄴdao ㄴRoleDao.java ㄴdto ㄴRole.java ㄴmain ㄴTest.java pom.xml 설정 및 DAO 작성 UTF-8 1.8 1.8 5.1.5.RELEASE org.springframework spring-context ${spring.version} org.springframework spring-jdbc ${spring.version} org.springframework spring-tx ${spring.version} org.apache.commons commons-dbcp2 2.1.1 org.mariadb.jdbc mariadb-java-client 2.7.0 Role.java pu..
Spring JDBC 개발자가 할 일 connection 파라미터 정의 SQL문 지정 파라미터 선언과 파라미터 값 제공 각 이터레이션에 대한 작업 수행 Spring이 해주는 일 connection 오픈 statement 준비와 실행 (존재한다면)결과를 반복하는 루프 설정 모든 예외 처리 트랜잭션 제어 connection, statement, resultset 닫기 JDBC와 Spring JDBC 소스 비교 // JDBC public Role getRole(Integer roleId) { Role role = null; Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { Class.forName("org.mariad..