2017-05-04 695 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中。

我还没有尝试过数百万行,但合理数量的行应该工作。