您可以使用以下示例实现addBatch和executeBatch命令同时执行多个 SQL 命令。
批处理允许您将相关的SQL语句分组为一个批处理,并通过一次调用将其提交给数据库。参考
当您一次将多个SQL语句发送到数据库时,可以减少通信开销,从而提高性能。
- 不需要JDBC驱动程序即可支持此功能。您应该使用该
DatabasemetaData.supportsBatchUpdates()
方法确定目标数据库是否支持批量更新处理。如果您的JDBC驱动程序支持此功能,则该方法返回true。 - Statement,PreparedStatement和CallableStatement 的 addBatch ()方法用于将单个语句添加到批处理中。将
executeBatch()
用于启动所有组合在一起的语句的执行。 - 的 则ExecuteBatch ()返回一个整数数组,并且阵列中的每个元素表示相应更新语句的更新计数。
- 正如您可以将语句添加到批处理中一样,您可以使用 clearBatch ()方法将其删除。此方法将删除您使用该
addBatch()
方法添加的所有语句。但是,您不能有选择地选择要删除的语句。
例:
import java.sql.*;public class jdbcConn { public static void main(String[] args) throws Exception{ Class.forName("org.apache.derby.jdbc.ClientDriver"); Connection con = DriverManager.getConnection ("jdbc:derby://localhost:1527/testDb","name","pass"); Statement stmt = con.createStatement (ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); String insertEmp1 = "insert into emp values (10,'jay','trainee')"; String insertEmp2 = "insert into emp values (11,'jayes','trainee')"; String insertEmp3 = "insert into emp values (12,'shail','trainee')"; con.setAutoCommit(false); stmt.addBatch(insertEmp1);//inserting Query in stmt stmt.addBatch(insertEmp2); stmt.addBatch(insertEmp3); ResultSet rs = stmt.executeQuery("select * from emp"); rs.last(); System.out.println("rows before batch execution= " + rs.getRow()); stmt.executeBatch(); con.commit(); System.out.println("Batch executed"); rs = stmt.executeQuery("select * from emp"); rs.last(); System.out.println("rows after batch execution= " + rs.getRow()); }}请参阅http://www.tutorialspoint.com/javaexamples/jdbc_executebatch.htm



