猿问

用JDBC实现批量插入的有效方法

用JDBC实现批量插入的有效方法

在我的应用程序中,我需要做大量的插入。这是一个Java应用程序,我使用普通JDBC执行查询。数据库是Oracle。不过,我已经启用了批处理,因此可以节省网络延迟来执行查询。但是,查询作为单独的插入依次执行:


insert into some_table (col1, col2) values (val1, val2)

insert into some_table (col1, col2) values (val3, val4)

insert into some_table (col1, col2) values (val5, val6)

我想知道以下插入形式是否更有效:


insert into some_table (col1, col2) values (val1, val2), (val3, val4), (val5, val6)

也就是说,将多个插入物折叠成一个。


还有其他让批量插入更快的提示吗?


暮色呼如
浏览 2360回答 3
3回答

湖上湖

这是前两个答案的混合:  PreparedStatement ps = c.prepareStatement("INSERT INTO employees VALUES (?, ?)");   ps.setString(1, "John");   ps.setString(2,"Doe");   ps.addBatch();   ps.clearParameters();   ps.setString(1, "Dave");   ps.setString(2,"Smith");   ps.addBatch();   ps.clearParameters();   int[] results = ps.executeBatch();

青春有我

这个Statement提供以下选项:Statement stmt = con.createStatement();stmt.addBatch("INSERT INTO employees VALUES (1000, 'Joe Jones')");stmt.addBatch("INSERT INTO departments VALUES (260, 'Shoe')");stmt.addBatch("INSERT INTO emp_dept VALUES (1000, 260)");// submit a batch of update commands for executionint[] updateCounts = stmt.executeBatch();
随时随地看视频慕课网APP
我要回答