1.创建类
public class JDBC {
public static void main(String[] args) {
Connection connection = null;
PreparedStatement statement = null;
ResultSet resultSet = null;
//模拟批量的数据
Person person1 = new Person();
person1.setName("李天佑");
person1.setAge(20);
Person person2 = new Person();
person2.setName("刘一手");
person2.setAge(30);
Person person3 = new Person();
person3.setName("刘美美");
person3.setAge(40);
//批量添加用户
ArrayList<Person> list = new ArrayList<>();
list.add(person1);
list.add(person2);
list.add(person3);
try {
//1.加载Driver驱动
Class.forName("com.mysql.jdbc.Driver");
//2.建立数据库连接
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root");
//3.获取执行SQL语句的操作对象
String sql = "insert into person(name,age)values(?,?)"; //?代表占位符,每个?表示每个属性对应要传入的参数
statement = connection.prepareStatement(sql); //这里使用prepareStatement操作对象,是在执行SQL语句之前,提前编译SQL语句的格式,防止SQL注入。
//遍历List集合,将封装的对象添加到数据库
for (Person person : list) {
String name = person.getName();
Integer age = person.getAge();
statement.setString(1,name);
statement.setInt(2,age);
//执行SQL语句
statement.executeUpdate(); //executeQuery()方法是SQL语句是查询的时候使用executeQuery()。SQL语句在执行添加/更新/删除数据时使用executeUpdate();
}
} catch (Exception e) {
e.printStackTrace();
}finally {
//关闭连接对象
if (resultSet!=null) {
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (statement!=null) {
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (connection!=null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
2.批量添加成功后,数据库的变化。
以下红框里面的3条记录是一次性批量添加的