Đối với phần xóa:
Sử dụng addBatch rồi thực hiện executeBatch:
Statement st = con.createStatement();
st.addBatch("DELETE FROM tbl1");
st.addBatch("DELETE FROM tbl2");
st.addBatch("DELETE FROM tbl3");
int[] results = st.executeBatch();
Sau đó, kết quả sẽ chứa một mảng với số hàng bị xóa khỏi mỗi bảng.
Để chèn:
Dưới đây là một ví dụ để chỉ cho bạn cách chèn một vài bản ghi trong quy trình hàng loạt, thông qua JDBC PreparedStatement.
dbConnection.setAutoCommit(false);//commit trasaction manually
String insertTableSQL = "INSERT INTO DBUSER"
+ "(USER_ID, USERNAME, CREATED_BY, CREATED_DATE) VALUES"
+ "(?,?,?,?)";
PreparedStatement = dbConnection.prepareStatement(insertTableSQL);
preparedStatement.setInt(1, 101);
preparedStatement.setString(2, "mkyong101");
preparedStatement.setString(3, "system");
preparedStatement.setTimestamp(4, getCurrentTimeStamp());
preparedStatement.addBatch();
preparedStatement.setInt(1, 102);
preparedStatement.setString(2, "mkyong102");
preparedStatement.setString(3, "system");
preparedStatement.setTimestamp(4, getCurrentTimeStamp());
preparedStatement.addBatch();
preparedStatement.executeBatch();
dbConnection.commit();
Liên kết tài nguyên:
Ví dụ về JDBC PreparedStatement - Cập nhật hàng loạt
CẬP NHẬT:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
/** Copyright (c), AnkitMittal JavaMadeSoEasy.com */
public class PreparedStatementDeleteExample {
public static void main(String... arg) {
Connection con = null;
PreparedStatement prepStmt = null;
try {
// registering Oracle driver class
Class.forName("oracle.jdbc.driver.OracleDriver");
// getting connection
con = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:orcl",
"ankit", "Oracle123");
System.out.println("Connection established successfully!");
con.setAutoCommit(false); //Now, transactions won't be committed automatically.
prepStmt = con.prepareStatement("DELETE from EMPLOYEE where ID=? ");
//1) add set of parameters in PreparedStatement's object - BATCH of commands
prepStmt.setInt(1, 7); //substitute first occurrence of ? with 7
prepStmt.addBatch();
//2) add set of parameters in PreparedStatement's object - BATCH of commands
prepStmt.setInt(1, 8); //substitute first occurrence of ? with 8
prepStmt.addBatch();
//Execute PreparedStatement batch
prepStmt.executeBatch();
System.out.println("PreparedStatement Batch executed, DELETE done");
con.commit(); //commit all the transactions
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
finally{
try {
if(prepStmt!=null) prepStmt.close(); //close PreparedStatement
if(con!=null) con.close(); // close connection
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
ĐẦU RA:
Connection established successfully!
PreparedStatement Batch executed, DELETE done
Trong hướng dẫn này, chúng ta đã học cách Thực thi truy vấn DELETE (lệnh DML) bằng cách sử dụng addBatch()
của PreparedStatement và executeBatch()
các phương thức trong java JDBC.
Liên kết tài nguyên:
- JDBC Xử lý hàng loạt (Chèn hàng loạt, cập nhật và xóa)
- JDBC- Ví dụ về Batch PreparedStatement- Thực thi truy vấn DELETE ( DMLcommand) sử dụng phương thức addBatch () và executeBatch () của PreparedStatement trong java