1

我正在尝试设置一个 while 循环,该循环使用 Java 中的 jdbc 驱动程序将多行插入 MySQL 表。我的想法是,我最终会发表如下声明:

INSERT INTO table (column1, column2) VALUES (column1, column2), (column1, column2);

我想使用 a 设置此语句java.sql.PreparedStatement,但我想准备语句的一小部分,一次一行 - 主要是因为条目的数量是动态的,这似乎是创建一个大的最佳方法询问。

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

谢谢你,帕特里克

4

2 回答 2

1

最好准备一个 PreparedStatement 并尽可能多地重用它:

INSERT INTO (table) (column1, column2) VALUES (column1, column2)

于 2012-04-04T19:54:14.793 回答
1

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

这些收益可能仍然无法与您所要求的在循环中建立长多插入的预准备语句的性能相匹配,但编码起来会更简单。除非性能出现问题,否则我建议使用执行循环。

于 2012-04-04T19:55:00.007 回答