2017-05-04 1 views
1

내 컨트롤러에서 두 개의 매개 변수를 포함하는 하나의 요청을 받았습니다. 하나는 정수 값이고 다른 하나는 목록입니다.NamedParameterJdbcTemplate을 사용하는 대량 삽입

{"store_id":12,"product":[[1,10],[2,20],[3,30]]} 

는 그리고 제가 DB 쿼리 NamedParameterJdbcTemplate을 사용하고

12,1,10 
12,2,20 
12,3,30 

처럼 삽입 할. 나는 batchquery로 노력했지만 시간이 많이 걸렸다. 성능 향상을위한 다른 방법이 있습니까?

답변

1

하나의 SQl 삽입 문을 생성 할 수 있습니다. 이

INSERT INTO MyTable 
(Column1, Column2, Column3) 
VALUES 
(:Value1_1, :Value1_2, :Value1_3), 
(:Value2_1, :Value2_2, :Value2_3), 
(:Value3_1, :Value3_2, :Value3_3), 
; 

같은 VALUES 섹션은 당신이 필요로하는 값의 많은 행을 삽입 할 동적입니다. 모든 매개 변수는 NamedParameterJdbcTemplate에 사용되도록 적절히 배치 할 수 있습니다.

수백만 개의 행을 시도하지는 않았지만 합리적인 양의 행으로 작동해야합니다.