Java代码封装一个函数,将集合数据添加到数据
时间: 2024-02-09 09:10:36 浏览: 22
库中:
```java
public static void addDataToDatabase(Connection conn, List<Map<String, Object>> dataList) throws SQLException {
PreparedStatement stmt = null;
try {
stmt = conn.prepareStatement("INSERT INTO users (name, age, email) VALUES (?, ?, ?)");
for (Map<String, Object> data : dataList) {
stmt.setString(1, (String) data.get("name"));
stmt.setInt(2, (int) data.get("age"));
stmt.setString(3, (String) data.get("email"));
stmt.addBatch();
}
stmt.executeBatch();
conn.commit();
} catch(SQLException e) {
if (conn != null) {
conn.rollback();
}
throw e;
} finally {
if (stmt != null) {
stmt.close();
}
}
}
```
这个函数接收两个参数:一个是数据库连接对象 `conn`,另一个是要插入的数据列表 `dataList`,其中每个元素都是一个 `Map` 对象,包含三个键值对,分别是 `name`、`age` 和 `email`。我们使用 `PreparedStatement` 对象来执行插入操作,首先准备 SQL 语句,然后使用循环将数据添加到批处理中,最后执行批处理并提交更改。
注意,我们使用了 `addBatch()` 方法将多个插入操作添加到批处理中,然后使用 `executeBatch()` 方法一次性执行这些操作,这样可以提高效率。此外,我们还使用了事务,即如果执行插入操作时出现异常,就回滚之前的操作,保证数据的一致性。最后,我们在 `finally` 块中关闭 `PreparedStatement` 对象,释放资源。