list中有几个对象,通过循环list去除其中的参数添加到对象中进行增加数据库操作用JAVA怎么写
时间: 2023-05-29 09:07:13 浏览: 100
假设list中存储的是User对象,每个User对象包含id、name和age三个属性,要将这些User对象插入到数据库中,可以按照以下步骤操作:
1. 引入数据库相关的jar包,如mysql-connector-java.jar。
2. 在代码中连接数据库,例如:
```
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password");
```
其中test是数据库名,root是用户名,password是密码。
3. 创建PreparedStatement对象,用于执行SQL语句,例如:
```
PreparedStatement ps = conn.prepareStatement("INSERT INTO user(id, name, age) VALUES (?, ?, ?)");
```
SQL语句中的问号表示占位符,后面会用setXXX()方法填充具体的值。
4. 遍历list,将每个User对象的属性值设置到PreparedStatement中,例如:
```
for (User user : list) {
ps.setInt(1, user.getId());
ps.setString(2, user.getName());
ps.setInt(3, user.getAge());
ps.executeUpdate();
}
```
setXXX()方法的第一个参数是占位符的位置,第二个参数是具体的值。
5. 关闭PreparedStatement和Connection对象,释放资源,例如:
```
ps.close();
conn.close();
```
完整代码示例:
```
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.List;
public class UserDao {
private static final String URL = "jdbc:mysql://localhost:3306/test";
private static final String USER = "root";
private static final String PASSWORD = "password";
public void insertUsers(List<User> users) {
try (Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);
PreparedStatement ps = conn.prepareStatement("INSERT INTO user(id, name, age) VALUES (?, ?, ?)")) {
for (User user : users) {
ps.setInt(1, user.getId());
ps.setString(2, user.getName());
ps.setInt(3, user.getAge());
ps.executeUpdate();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
```
其中User类的定义为:
```
public class User {
private int id;
private String name;
private int age;
public User(int id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
```
阅读全文