java oracle 大批量插入 怎么写才效率高
时间: 2024-05-07 11:19:47 浏览: 78
在Java中,如果要进行大批量插入,可以使用JDBC的批处理(Batch)操作来提高效率。以下是一个示例代码:
```java
try {
// 创建连接
Connection conn = DriverManager.getConnection(url, username, password);
// 关闭自动提交事务
conn.setAutoCommit(false);
// 创建PreparedStatement
PreparedStatement ps = conn.prepareStatement("INSERT INTO table_name (col1, col2, col3) VALUES (?, ?, ?)");
// 循环添加批处理
for (int i = 0; i < list.size(); i++) {
ps.setString(1, list.get(i).getCol1());
ps.setString(2, list.get(i).getCol2());
ps.setInt(3, list.get(i).getCol3());
ps.addBatch();
}
// 执行批处理
ps.executeBatch();
// 提交事务
conn.commit();
// 关闭连接
ps.close();
conn.close();
} catch (SQLException e) {
// 异常处理
}
```
在这个示例中,我们使用了PreparedStatement来构建SQL语句,并使用addBatch()方法将多个SQL语句添加到批处理中。最后,一次性执行整个批处理,从而提高了效率。
注意,为了进一步提高性能,可以考虑使用JDBC的批处理中的参数设置方法,如setFetchSize()、setBatchSize()等。另外,在实际应用中,还需要注意数据库连接池的配置,以避免连接池过小导致性能下降。
阅读全文