用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)也就是说,将多个插入物折叠成一个。还有其他让批量插入更快的提示吗?
3 回答

萧十郎
TA贡献1815条经验 获得超13个赞
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();

幕布斯6054654
TA贡献1876条经验 获得超7个赞
这个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 execution
int[] updateCounts = stmt.executeBatch();
添加回答
举报
0/150
提交
取消