2017-05-04 73 views
1

在我的控制器中,我收到一個包含2個參數的請求:其中一個是整數值,另一個是列表。使用NamedParameterJdbcTemplate進行批量插入

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

我想插入像

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

我使用NamedParameterJdbcTemplate對於DB查詢。我嘗試了批量查詢,但耗時。有沒有其他方法可以提高性能?

回答

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中。

我還沒有嘗試過數百萬行,但合理數量的行應該工作。