java分批删除数据
时间: 2023-12-03 08:40:09 浏览: 188
java批量删除
以下是Java分批删除数据的示例代码:
```java
// 假设我们要删除的表名为table,每次删除1000条数据
int batchSize = 1000;
int count = 0;Connection conn = null;
PreparedStatement ps = null;
try {
conn = dataSource.getConnection();
conn.setAutoCommit(false);
ps = conn.prepareStatement("DELETE FROM table LIMIT ?");
while (true) {
ps.setInt(1, batchSize);
int rows = ps.executeUpdate();
if (rows == 0) {
break;
}
count += rows;
conn.commit();
}
} catch (SQLException e) {
if (conn != null) {
try {
conn.rollback();
} catch (SQLException e1) {
e1.printStackTrace();
}
}
e.printStackTrace();
} finally {
if (ps != null) {
try {
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
```
这段代码使用了JDBC连接数据库,并使用PreparedStatement执行了分批删除数据的操作。首先设置每次删除的数据量为batchSize,然后在循环中执行删除操作,直到没有数据可以删除为止。每次删除后需要手动提交事务,以保证数据的一致性。如果出现异常需要回滚事务,并关闭连接和PreparedStatement。
阅读全文