Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.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 在数据库中插入多行_Java_Database - Fatal编程技术网

Java 在数据库中插入多行

Java 在数据库中插入多行,java,database,Java,Database,我想知道在数据库中插入多行的更好方法是什么: 使用一个查询执行此操作或 for(int x=0;x

我想知道在数据库中插入多行的更好方法是什么:

  • 使用一个查询执行此操作或
  • for(int x=0;x
  • 还是你们有别的办法?请分享

  • 我的数据大约由8列50行组成。

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

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

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

    String query="insert into table1 (First,Last) values";
    for(; ;)
    {
        query=query+"('Fred','Smith'),";
    }
     -----You can write your database insertion code here----
    
    或者可以使用addBatch()和executeBatch();方法也


    尽可能使用一个查询。这有多个好处:

    • 减少与DBMS的连接,减少连接到服务器时的网络访问和其他操作(即使它与程序位于同一台计算机上)
    • 更好地优化查询。DBMS比您更擅长优化。总是。执行多个查询将阻碍DBMS的优化过程,即使使用缓存系统也是如此

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

    您可以使用
    批量插入

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

    BULK INSERT STUDENT
    FROM ‘D:\STUDENTS_LIST.txt’
    WITH ( FIELDTERMINATOR = ‘,’, ROWTERMINATOR = ‘\n’ )
    
    考虑使用单个数据集和多个数据集作为批处理


    (注意:并非所有JDBC驱动程序都支持这一点,并且完全符合规范。)

    为什么不运行一些定时测试用例,看看?这比一个查询好吗?性能方面,不是很确定(因为在内部,即使是单个查询,也可能插入那么多次,就行数而言),但可读性方面,它肯定更好。检查这个