嗨,我是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/