现在,您要从中选择所有行,SAVINGS
并尝试为每个没有“新”帐号的行插入一个新帐户。
相反,您应该只选择具有新帐号的行,并在不存在该行的情况下插入。
您还应该使用准备好的语句来防止sql注入。
例如:
try (PreparedStatement checkAccountExists = con.prepareStatement(
"SELECT 1 FROM SAVINGS WHERE ACCOUNTNUMBER = ?")) {
checkAccountExists.setInt(1, accountNumber);
try (ResultSet rs = checkAccountExists.executeQuery()) {
if (rs.next()) {
// handle account already exists
} else {
try (PreparedStatement insert = con.prepareStatement(
"INSERT INTO SAVINGS(ID, ACCOUNTNUMBER, CUSTOMERNAME, BALANCE, MINMUM) VALUES (?, ?, ?, ? , ?)")) {
insert.setInt(1, id);
insert.setInt(2, accountNumber);
insert.setString(3, customername);
insert.setInt(4, balance);
insert.setInt(5, minmum);
insert.executeUpdate();
}
}
}
}
另外,您可以ACCOUNTNUMBER
在数据库中定义一个唯一约束,然后执行插入操作,并在记录已存在的情况下处理约束违例。