批量插入五万条数据高效率代码代码示例
时间: 2023-07-10 19:36:24 浏览: 116
以下是 Java JDBC 批量插入五万条数据的高效率代码示例:
```java
Connection conn = null;
PreparedStatement pstmt = null;
try {
// 获取数据库连接
conn = DriverManager.getConnection(url, username, password);
// 关闭自动提交,开启事务
conn.setAutoCommit(false);
// 准备 SQL 语句
String sql = "INSERT INTO table_name (column1, column2, column3) VALUES (?, ?, ?)";
// 获取预处理语句对象
pstmt = conn.prepareStatement(sql);
// 循环插入数据
for (int i = 1; i <= 50000; i++) {
// 设置参数
pstmt.setInt(1, i);
pstmt.setString(2, "value" + i);
pstmt.setDouble(3, Math.random() * 100);
// 添加到批处理中
pstmt.addBatch();
// 每1000条数据提交一次
if (i % 1000 == 0) {
pstmt.executeBatch();
pstmt.clearBatch();
}
}
// 提交事务
conn.commit();
} catch (SQLException e) {
// 回滚事务
if (conn != null) {
try {
conn.rollback();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
e.printStackTrace();
} finally {
// 关闭预处理语句对象和数据库连接
if (pstmt != null) {
try {
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
```
以上代码中,使用了 JDBC 的批处理技术,每1000条数据提交一次,可以有效地减少数据库连接和提交的次数,提高插入数据的效率。同时,使用了事务来确保数据的一致性和完整性。
阅读全文