Java批量插入循环需要时间附加代码吗?

标签 java database netbeans bulkinsert

嗨,我是java新手,我正在使用数组中的循环插入数据库,这需要时间,我如何在数据库中插入数据作为批量插入我的代码,

  if(con != null)
            { 

                    rs = dboperation.DBselectstatement(con,"select host_object_id from nagios_hosts where address='"+ip+"'");

                    if (rs != null)
                    { 
                       rs.next();
                       String id = rs.getString(1);
                       for(int i= 0;i<serviceArray.length;i++)
                       {         
                         status.append(serviceArray[i]+"\n");
                         dboperation.DbupdateStatement(DbAcess.getNagios_connection(),"insert into nagios_servicelist(service_name,host_object_id) values('"+serviceArray[i]+"','"+id+"')");
                       }
                    }

            }

不要详细介绍这段代码,我告诉你,我从“rs”结果集中的第一个查询中获取ID,并且“servicearray”有我想插入到数据库中的服务,但它需要时间循环我将如何这个数组在数据库中批量插入吗?

希望尽快收到您的来信

提前致谢

最佳答案

您应该使用 JDBC 批量插入来达到您的目的 -

//Create a new statement
Statement st = con.createStatement();

//Add SQL statements to be executed
st.addBatch("insert into nagios_servicelist(service_name,host_object_id)    values('"+serviceArray[0]+"','"+id+"')");
st.addBatch("insert into nagios_servicelist(service_name,host_object_id)    values('"+serviceArray[1]+"','"+id+"')");
st.addBatch("insert into nagios_servicelist(service_name,host_object_id)    values('"+serviceArray[2]+"','"+id+"')");

// Execute the statements in batch
 st.executeBatch();

您可以在此处插入您自己的逻辑。但这是如何完成此操作的概述。

关于Java批量插入循环需要时间附加代码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10169585/

相关文章:

sql - 如果 LEFT JOIN 表记录数大于 1,则排除行

Java:Netbeans - 没有找到适合 jdbc mysql 的驱动程序(在构建和清理项目之后)

java - 在login.jsp中安全传输用户名和密码,无需使用https

java - 使用变量名称访问和设置静态变量

java - 在 linux 中记录键盘、鼠标 Activity

java - 在 Netbeans 中使用 try-with-resources

java - 两个线程调用相同的 keyEvents 方法

java - Spring MVC 中的 HttpMessageNotWritableException : No converter found for return value of type: class java. util.HashMap

mysql - Mysql如何将不同的表复制到不同的数据库?

mysql - mysql 数据版本控制系统的最佳实践