Ну, главная проблема здесь в том, что обнаружение дублированных записей в Jtable, обнаружение дублированных записей будет работать, когда вы введете те же / идентичные данные в третий раз.Это не будет работать во второй раз и дублировать.
Как я могу добавить уникальное ограничение в моем MySQL?я не знаю как это сделать.Пожалуйста, дайте мне конкретные инструкции о том, как его выполнить
2-я попытка (дубликат)
3-я попытка (обнаружение работает)
база данных
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();
}