要删除大量数据,可以使用 JDBC 的批处理操作来提高效率。以下是一个示例代码:
try (Connection conn = DriverManager.getConnection(url, username, password);?????PreparedStatement?stmt?=?conn.prepareStatement(“DELETE?FROM?table_name?WHERE?condition”))?{
????conn.setAutoCommit(false);??//?手动提交事务
????int?batchSize?=?1000;??//?每批处理的数据量
????int?count?=?0;
????//?执行删除操作
????stmt.setFetchSize(batchSize);
????ResultSet?rs?=?stmt.executeQuery();
????
????while?(rs.next())?{
????????stmt.addBatch();
????????
????????if?(++count?%?batchSize?==?0)?{
????????????stmt.executeBatch();
????????????conn.commit();
????????}
????}
????
????stmt.executeBatch();??//?处理剩余的数据
????conn.commit(); }?catch?(SQLException?e)?{
????//?处理异常 }
在上面的代码中,使用 PreparedStatement
来执行删除操作,然后使用 setFetchSize
方法设置每次批量处理的数据量。通过循环读取 ResultSet
中的数据,并调用 addBatch
方法将批量操作添加到批处理中。当累积到一定的数据量时,调用 executeBatch
方法执行批处理操作,并通过 commit
方法提交事务。最后,在循环结束后再次调用 executeBatch
和 commit
方法,以处理剩余的数据。
请注意,在执行大量数据删除操作时,可能会对数据库的性能产生影响,因此请谨慎操作,并在必要时备份数据。
辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>