Thực thi nhiều lệnh SQL trong Java



Miêu tả vấn đề

Cách thực thi đồng thời nhiều lệnh SQL trên một Database trong Java?

Giải pháp

Ví dụ sau sử dụng lệnh addBatch và executeBatch để thực thi đồng thời nhiều lệnh SQL trên một Database trong Java.

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);
      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());
   }
} 

Kết quả

Code trên sẽ cho kết quả sau. Kết quả có thể rất đa dạng.

rows before batch execution= 6
Batch executed
rows after batch execution= = 9 

java_jdbc_trong_java.jsp