preparedStatement 如何批量插入
时间: 2024-05-11 11:18:02 浏览: 146
在使用 JDBC 进行批量插入时,可以使用 PreparedStatement 的 addBatch() 方法来将多条 SQL 语句添加到批处理中,最后再一次性执行,以提高插入效率。
下面是一个示例代码,演示如何使用 PreparedStatement 进行批量插入:
```java
// 假设有一个 List<User> userList 需要批量插入
Connection conn = null;
PreparedStatement pstmt = null;
try {
conn = dataSource.getConnection();
pstmt = conn.prepareStatement("INSERT INTO user(name, age) VALUES (?, ?)");
// 循环添加多条 SQL 语句到批处理中
for (User user : userList) {
pstmt.setString(1, user.getName());
pstmt.setInt(2, user.getAge());
pstmt.addBatch();
}
// 执行批量插入
int[] result = pstmt.executeBatch();
System.out.println("插入成功条数:" + result.length);
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 关闭连接和资源
DbUtils.closeQuietly(pstmt);
DbUtils.closeQuietly(conn);
}
```
上述代码中,首先获取数据库连接,然后通过 PreparedStatement 生成一条 SQL 语句模板,将需要插入的数据循环添加到批处理中,最后执行批量插入并返回插入成功的条数。需要注意的是,如果插入的数据量过大,可能会导致内存溢出,此时可以考虑使用分批插入的方式,将数据分为多个批次插入。
阅读全文