java sql每100条提交一次
时间: 2023-12-19 17:06:23 浏览: 69
你可以使用批量处理来实现每100条提交一次。以下是一个示例代码:
```java
Connection conn = null;
PreparedStatement stmt = null;
try {
conn = getConnection(); // 获取数据库连接
conn.setAutoCommit(false); // 关闭自动提交
String sql = "INSERT INTO mytable (col1, col2, col3) VALUES (?, ?, ?)";
stmt = conn.prepareStatement(sql);
int count = 0;
for (int i = 0; i < dataList.size(); i++) {
Object[] data = dataList.get(i);
stmt.setObject(1, data[0]);
stmt.setObject(2, data[1]);
stmt.setObject(3, data[2]);
stmt.addBatch(); // 添加到批量处理
count++;
if (count % 100 == 0) { // 每100条提交一次
stmt.executeBatch();
conn.commit();
stmt.clearBatch(); // 清空批量处理
}
}
stmt.executeBatch(); // 最后提交一次
conn.commit();
} catch (SQLException e) {
conn.rollback(); // 出现异常时回滚事务
e.printStackTrace();
} finally {
close(stmt);
close(conn);
}
```
在这个示例中,我们使用了 `addBatch()` 方法将每一条 SQL 语句添加到批量处理中,然后使用 `executeBatch()` 方法执行批量处理。在每100条数据处理完后,我们提交事务并清空批量处理。最后再执行一次批量处理并提交事务。这样就可以实现每100条提交一次的效果了。
阅读全文