gpt4 book ai didi

java - 如何防止 Jtable 和 MYSQL(数据库)中的重复条目?

转载 作者:行者123 更新时间:2023-11-29 07:23:37 26 4
gpt4 key购买 nike

这里的主要问题是,检测 Jtable 中的重复条目,当您第三次输入相同/相同的数据时,重复条目的检测将起作用。它不会在第二次工作和复制。

如何在我的 mysql 中添加唯一约束?我不知道该怎么做。请让我有一个关于如何执行它的具体说明

2nd try (duplicate)

3rd try(the detection works)

database

Java NETBEANS

数据库:MYSQL

我认为问题出在 try-catch 部分,这是我不理解的部分。提前致谢。

这是我的代码:

 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
String first = firstname.getText();
String last = lastname.getText();
String gen = gender.getText();
String strand = cboStrand.getSelectedItem().toString();
String aged = age.getText();
String add = address.getText();


try{
String sql;
sql = "INSERT INTO idusjavanew"
+ "(fname,lname,sex,strand,age,address)"
+ "VALUES (?,?,?,?,?,?)";
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/idusjavanew?zeroDateTimeBehavior=convertToNull","root","");
pst = con.prepareStatement(sql);
pst.setString(1, firstname.getText());
pst.setString(2, lastname.getText());
pst.setString(3, gender.getText());
pst.setString(4, cboStrand.getSelectedItem().toString());
pst.setString(5, age.getText());
pst.setString(6, address.getText());

String selectQuery;
selectQuery = "select * from idusjavanew where fname ='"+first+"' and lname='"+last+"'";
System.out.println(selectQuery);
rs = pst.executeQuery(selectQuery);
System.out.println(rs.next());

if (rs.next()==false){
pst.executeUpdate();
JOptionPane.showMessageDialog(null , "Information has been recorded!");
showTableData();
}
else{

JOptionPane.showMessageDialog(null,"Information already added!");
showTableData();
}
}

catch(HeadlessException | SQLException ex)
{
JOptionPane.showMessageDialog(null,ex);
}
showTableData();


}

最佳答案

您在结果集上调用了两次 next(),一次是在 print 语句中,一次是在 if 中,这是导致问题的原因。

因此,根据您当前的代码,如果您已经有一个条目,则对 next() 的第一次调用会将其指向该条目,而第二次调用将返回 false。这就是它在第三行条目上检测到重复项的原因。

因此只需删除 System.out.println(rs.next());,您的代码就会按预期工作。

关于java - 如何防止 Jtable 和 MYSQL(数据库)中的重复条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54963495/

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