在 Java 中實現批量刪除數據可以使用數據庫的 DELETE 語句結合 JDBC 來實現。下面是一個示例代碼:
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; public class BatchDeleteExample { public static void main(String[] args) { // 創建連接 try (Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "username", "password")) { // 開啟事務 conn.setAutoCommit(false); // 創建 PreparedStatement 對象 PreparedStatement pstmt = conn.prepareStatement("DELETE FROM table_name WHERE condition"); // 設置批處理大小 int batchSize = 1000; // 循環刪除數據 for (int i = 0; i < recordsToDelete.length; i++) { int id = recordsToDelete[i]; pstmt.setInt(1, id); pstmt.addBatch(); // 當達到批處理大小時執行刪除操作 if ((i + 1) % batchSize == 0) { pstmt.executeBatch(); } } // 執行剩余的刪除操作 pstmt.executeBatch(); // 提交事務 conn.commit(); // 關閉 PreparedStatement 對象 pstmt.close(); System.out.println("批量刪除數據成功!"); } catch (SQLException e) { e.printStackTrace(); } } }
上述代碼中,你需要替換以下部分以適應你的數據庫和表:
- `jdbc:mysql://localhost:3306/test`:數據庫連接字符串,包括數據庫的主機名、端口號和數據庫名;
- `"username"` 和 `"password"`:數據庫登錄的用戶名和密碼;
- `"DELETE FROM table_name WHERE condition"`:要執行的刪除語句,其中 `table_name` 是要刪除數據的表名,`condition` 是刪除條件。
使用該代碼,你可以將要刪除的記錄 ID 存儲在 `recordsToDelete` 數組中,循環遍歷該數組并執行批量刪除操作。在達到批處理大小時,將執行一次批處理操作,最后再執行剩余的刪除操作。