在数据库中插入多行

时间:2013-11-18 10:51:49

标签: java database

我想知道哪种方法可以在数据库中插入多行:

  1. 使用一个查询执行此操作或
  2. for( int x = 0; x < y.length; x++ ) { insertRowsIntoDatabase( valuesHere ); }
  3. 或者你们有另一种方法?请分享。
  4. 我的数据包含8列和50行。

5 个答案:

答案 0 :(得分:2)

更好的方法是进行批量插入,而不是逐行插入行。

for (String query : queries) {
    statement.addBatch(query);
}
statement.executeBatch();

答案 1 :(得分:1)

是的,您只能编写一个查询来插入所有值:

String query="insert into table1 (First,Last) values";
for(; ;)
{
    query=query+"('Fred','Smith'),";
}
 -----You can write your database insertion code here----

或者您可以使用addBatch()和executeBatch();方法也......

Plz refer this link for read more about addBatch() Method

答案 2 :(得分:1)

尽可能使用一个查询。这有许多优点:

  • 与DBMS的连接较少,减少了网络访问以及连接服务器时所做的其他事情(即使它与程序在同一台计算机上)
  • 更好地优化查询。 DBMS在优化方面优于您。总是。即使使用缓存系统,执行多个查询也会阻碍DBMS的优化过程。

无论如何,对于任何DBMS来说,8列和50行都非常快速且易于处理,但您的数据可能会在以后增长,因此您希望使用最佳方法。

答案 3 :(得分:1)

您可以使用bulk insert

将所有值保存在文本文件中并使用。

BULK INSERT STUDENT
FROM ‘D:\STUDENTS_LIST.txt’
WITH ( FIELDTERMINATOR = ‘,’, ROWTERMINATOR = ‘\n’ )

答案 4 :(得分:0)

考虑使用单个Prepared Statement Batch,将多个数据集作为批处理。

(注意:并非所有JDBC驱动程序都支持此操作并且完全遵循规范。)