gpt4 book ai didi

java - 插入前检查重复数据

转载 作者:行者123 更新时间:2023-11-29 07:55:31 25 4
gpt4 key购买 nike

我正在创建一个 java swing 程序,用户可以在其中创建记录,但我希望能够在允许用户创建记录之前检查重复项。这是我的代码:

public boolean createAssignRequest(AssignmentRequests assignReq) {

int id = assignReq.getReqId();
String dutyName = assignReq.getDutyName();
String volNric = assignReq.getVolNric();

boolean success = false;
DBController db = new DBController();
String dbQuery = "";

db.getConnection();

dbQuery = "INSERT into assignrequests (dutyName, volNric)"
+ " VALUES ('" + dutyName + "','" + volNric + "')";

if (db.updateRequest(dbQuery) == 1) {
success = true;
}
db.terminate();

return success;

}

如果已存在具有相同 DutyName 和 volNric 的行,则用户无法创建记录。如果我要执行这行sql语句

ALTER TABLE `assignrequests` ADD UNIQUE `uniqueindex`(`dutyName`, `volNric`);

我会在 mySQL 中实现它(即使我截断我的数据,也只实现一次)还是在我的程序代码中实现它? (我使用的是 eclipse )我也使用三层架构:-)最后,如果已经检测到重复记录,我将如何实现代码以显示 JOptionPane?感谢您的帮助!

最佳答案

如果您希望 DutyNamevolNric 具有唯一值,请使用唯一约束/索引来实现:

create index idx_assignrequests_dutyname_volnric on assignrequests(dutyname, volnric);

然后,当您执行插入时,您可以让它失败。或者,您可以使用重复 key 更新忽略它:

INSERT into assignrequests(reqId, dutyName, volNric)"
VALUES ('" + id + "','" + dutyName + "','" + volNric + "')
ON DUPLICATE KEY UPDATE dutyName = VALUES(dutyName);

正在更新的列被设置为其自身 - 因此该操作不会执行任何操作。

关于java - 插入前检查重复数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25245310/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com