Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用NamedParameterJdbcTemplate大容量插入_Java_Sql_Spring - Fatal编程技术网

Java 使用NamedParameterJdbcTemplate大容量插入

Java 使用NamedParameterJdbcTemplate大容量插入,java,sql,spring,Java,Sql,Spring,在我的控制器中,我收到一个包含两个参数的请求:一个是整数值,另一个是列表 {"store_id":12,"product":[[1,10],[2,20],[3,30]]} 我想插入 12,1,10 12,2,20 12,3,30 我正在使用NamedParameterJdbcTemplate进行db查询。我尝试使用batchquery,但它很耗时。还有其他方法可以提高性能吗?您可以只生成一条SQl insert语句。像这样 INSERT INTO MyTable ( Column1, Co

在我的控制器中,我收到一个包含两个参数的请求:一个是整数值,另一个是列表

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

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

我正在使用
NamedParameterJdbcTemplate
进行db查询。我尝试使用batchquery,但它很耗时。还有其他方法可以提高性能吗?

您可以只生成一条SQl insert语句。像这样

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中使用

我没有尝试过数百万行,但对于合理数量的行,它应该可以工作