【发布时间】:2021-05-07 21:13:02
【问题描述】:
假设我们有一个 Person 类,其中包含与其属性相关的 setter 和 getter:
private int age
private String name
private String address
private double weight //lbs
private double height //cm
然后是它们的列表:
Person person1 = new Person(18, "Jack Harrs", "55 Albridge St", 155.20, 167.53)
Person person2 = new Person(53, "Toby Canes", "59 Albridge St", 193.43, 179.11)
Person person3 = new Person(24, "Dwayne Right", "74 W Saint St", 183.22, 183.87)
Person person4 = new Person(33, "Shelby Johnson", "99 Broad St", 123.50, 158.30)
List<Person> personsList = new ArrayList<>();
personsList.add(person1);
personsList.add(person2);
personsList.add(person3);
personsList.add(person4);
目前我通过executeBatch() 插入:
Connection con = ...
PreparedStatement stmt = con.prepareStatement("INSERT INTO persons_table (AGE, NAME, ADDRESS,
WEIGHT, HEIGHT) VALUES (?, ?, ?, ?, ?)");
for( Person person : personsList ) {
stmt.setInt(1, person.getAge());
stmt.setString(2, person.getName());
stmt.setString(3, person.getAddress());
stmt.setDouble(4, person.getWeight());
stmt.setDouble(5, person.getHeight());
stmt.addBatch();
}
int[] results = stmt.executeBatch();
因此,int[] results 看起来像 [1,1,..],其中 1 表示成功,x 其他数字表示失败。但是,我想根据操作是否成功返回 true 或 false。我试过只在最后做一个return true 而没有初始化一个int[] 数组但是我不知道如何在代码中解释return false 的情况?
【问题讨论】:
-
你不能。它是一个定义的接口。如果操作没有“成功”,那是什么意思?引发异常?
标签: java mysql sql sql-insert bulkinsert