可以通过使用Java和SQL语句的结合来实现删除数据库中2016年到2018年的数据,并且每3000条数据提交一次。下面是一个示例代码: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; import java.sql.Statement; public class DeleteData { public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/database_name"; // 数据库的URL String username = "username"; // 数据库用户名 String password = "password"; // 数据库密码 try (Connection connection = DriverManager.getConnection(url, username, password)) { connection.setAutoCommit(false); // 创建一个PreparedStatement对象,用于执行SQL删除语句 PreparedStatement statement = connection.prepareStatement("DELETE FROM your_table_name WHERE year BETWEEN ? AND ?"); int startYear = 2016; int endYear = 2018; int batchSize = 3000; int count = 0; // 循环删除数据直到指定年份的数据 while (startYear <= endYear) { statement.setInt(1, startYear); statement.setInt(2, startYear); statement.addBatch(); // 每达到指定的批处理大小,提交批处理 if (++count % batchSize == 0) { statement.executeBatch(); connection.commit(); } startYear++; } // 提交最后一批未提交的数据 statement.executeBatch(); connection.commit(); System.out.println("数据删除成功!"); } catch (SQLException e) { System.out.println("数据删除失败: " + e.getMessage()); } } } ``` 请根据实际情况修改代码中的`url`、`username`、`password`和表名`your_table_name`。此代码使用Java的JDBC连接到数据库,并使用`PreparedStatement`执行SQL删除语句。循环从2016年到2018年的年份,将每个年份的数据存储在批处理中。当批处理大小达到3000时,执行并提交批处理。最后,执行并提交最后一批未提交的数据。 [2024-11-24 12:25:18 | AI写代码神器 | 1391点数解答]