Java 将多个PreparedStatements合并在一起

Java 将多个PreparedStatements合并在一起,java,mysql,jdbc,prepared-statement,Java,Mysql,Jdbc,Prepared Statement,我试图设置一个while循环,使用Java中的jdbc驱动程序将多行插入MySQL表。我的想法是,我最后的陈述大致如下: INSERT INTO table (column1, column2) VALUES (column1, column2), (column1, column2); 我想使用java.sql.PreparedStatement设置这个语句,但我想准备语句的一小段,一次一行-主要是因为条目的数量是动态的,这似乎是创建一个大查询的最佳方法 这要求每次生成另一个块时将小部分“合

我试图设置一个while循环,使用Java中的jdbc驱动程序将多行插入MySQL表。我的想法是,我最后的陈述大致如下:

INSERT INTO table (column1, column2) VALUES (column1, column2), (column1, column2);
我想使用
java.sql.PreparedStatement
设置这个语句,但我想准备语句的一小段,一次一行-主要是因为条目的数量是动态的,这似乎是创建一个大查询的最佳方法

这要求每次生成另一个块时将小部分“合并”在一起。如何将这些合并在一起?或者你会建议忘记这个想法,一次执行数千条
INSERT
语句吗

谢谢,,
Patrick

最好准备一份PreparedStatement,并尽可能地重复使用:


插入(表)(第1列,第2列)值(第1列,第2列)

这在某种程度上取决于您计划运行此循环以执行数千条语句的频率,但这正是准备好的语句和存储过程的目的之一,因为每次执行时不必重新编译查询,在循环中通过简单的SQL语句执行查询时,您可能会获得巨大的性能提升,在每次循环迭代中都必须编译和执行SQL语句


这些改进可能仍然无法与您要求的构建在循环中的长多重插入中的准备好的语句的性能相匹配,但编码会更简单。我建议继续执行循环,除非性能出现问题。

您希望使用批处理更新。请看一个例子。很公平,我担心这可能会影响性能速度,但这说明了问题。谢谢你的回答。