java中集合写入数据库
时间: 2023-07-25 16:39:52 浏览: 251
java访问数据库集合
将 Java 中的集合写入数据库,可以将集合中的每个元素作为一条记录插入到数据库表中。具体实现方法如下:
1. 连接数据库
使用 JDBC API 连接到数据库,获取 Connection 对象。连接数据库的代码示例:
```java
String url = "jdbc:mysql://localhost:3306/test";
String user = "root";
String password = "password";
Connection conn = DriverManager.getConnection(url, user, password);
```
2. 创建 SQL 语句
创建 SQL 插入语句,将集合中的元素插入到数据库表中。SQL 语句示例:
```java
String sql = "INSERT INTO users (name, age) VALUES (?, ?)";
```
3. 创建 PreparedStatement 对象
创建 PreparedStatement 对象,用于执行 SQL 语句。这里需要将 SQL 语句作为参数传入 PreparedStatement 的构造函数,示例代码:
```java
PreparedStatement pstmt = conn.prepareStatement(sql);
```
4. 遍历集合,设置 SQL 参数并执行 SQL 语句
遍历集合,将每个元素的属性值设置为 SQL 语句的参数,并执行 SQL 语句。示例代码:
```java
for (User user : userList) {
pstmt.setString(1, user.getName());
pstmt.setInt(2, user.getAge());
pstmt.executeUpdate();
}
```
5. 关闭 PreparedStatement 和 Connection 对象
执行完 SQL 语句后,需要关闭 PreparedStatement 和 Connection 对象,示例代码:
```java
pstmt.close();
conn.close();
```
完整代码示例:
```java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.List;
public class CollectionToDatabase {
public static void main(String[] args) {
// 数据库连接信息
String url = "jdbc:mysql://localhost:3306/test";
String user = "root";
String password = "password";
// SQL 语句
String sql = "INSERT INTO users (name, age) VALUES (?, ?)";
// 用户集合
List<User> userList = ...;
try {
// 加载数据库驱动
Class.forName("com.mysql.cj.jdbc.Driver");
// 建立数据库连接
Connection conn = DriverManager.getConnection(url, user, password);
// 创建 PreparedStatement 对象
PreparedStatement pstmt = conn.prepareStatement(sql);
// 遍历集合,设置 SQL 参数并执行 SQL 语句
for (User user : userList) {
pstmt.setString(1, user.getName());
pstmt.setInt(2, user.getAge());
pstmt.executeUpdate();
}
// 关闭 PreparedStatement 和 Connection 对象
pstmt.close();
conn.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
```
注意,如果集合中的元素数量很大,插入数据的时间会很长,这时可以考虑使用批处理(batch processing)来提高性能。具体实现方法是在遍历集合时,将每个元素的参数设置好后,调用 PreparedStatement 的 addBatch() 方法,将其添加到批处理中,最后调用 executeBatch() 方法一次性执行所有的 SQL 语句。
阅读全文