gpt4 book ai didi

java - 检查数据库是否具有相同的值

转载 作者:行者123 更新时间:2023-11-28 23:34:15 27 4
gpt4 key购买 nike

晚上好。下面是我在数据库中添加项目的代码

String sql = "Insert into userinfo(firstname,lastname,contactNumber,email,address,username,password,accountType) value (?,?,?,?,?,?,?,?)";
String accountType = (String) jComboBoxAccType.getSelectedItem();
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, jTextFieldFistName.getText());
ps.setString(2, jTextFieldLastName.getText());
ps.setString(3, jTextFieldContactNumber.getText());
ps.setString(4, jTextFieldEmail.getText());
ps.setString(5, jTextFieldAddress.getText());
ps.setString(6, jTextFieldUsername.getText());
ps.setString(7, jTextFieldPassword.getText());
ps.setString(8, accountType);
ps.execute();

我如何才能在添加前检查用户名和密码是否已经存在?

最佳答案

通常,您希望数据库自己执行此类数据完整性规则。这样可以确保数据正确。您不想在应用程序级别进行检查,因为这会引入竞争条件(两个插入基本上同时发生,两者都验证表没有重复,然后都插入相同的值)。

您可以使用唯一约束或唯一索引来保证唯一性(前者是使用后者实现的)。当插入重复值时,这将产生错误。很容易创建:

alter table userinfo add constraint unq_username_password unique (username, password);

也就是说,通常情况下,一个用户只有一个密码,因此约束只针对用户名:

alter table userinfo add constraint unq_username unique (username);

关于java - 检查数据库是否具有相同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36260989/

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