我正在使用Java编写基本的CRUD应用程序。我有一个JFrame
表单,其中包含添加,删除,编辑和更新选项。我设计了删除按钮,只能按用户ID搜索并从表中删除整个记录,但我很困惑如果ID不存在或ID已被删除该怎么办。我在try catch块中的所有三种场景中都得到了相同的消息。有人可以帮我设计错误,以便在用户ID不存在以及用户ID已被删除时显示吗?
删除按钮代码:
private void btnDeleteActionPerformed(java.awt.event.ActionEvent evt) {
try
{
int P = JOptionPane.showConfirmDialog(null," Are you sure want to delete ?","Confirmation",JOptionPane.YES_NO_OPTION);
if (P==0)
{
con=Connect.ConnectDB();
String sql= "delete from StaffInfo where STAFFID = '" + txtSTAFFID.getText() + "'";
pst=con.prepareStatement(sql);
pst.execute();
JOptionPane.showMessageDialog(this,"Successfully deleted","Record",JOptionPane.INFORMATION_MESSAGE);
Reset();
}
}catch(HeadlessException | SQLException ex){
JOptionPane.showMessageDialog(this,ex);
}
}
答案 0 :(得分:0)
您可以使用另一个包含已删除ID
值的表格,如果您希望可以添加已删除的时间,则删除此ID
的用户将作为该表的列。
如果您还要恢复数据,我建议您在当前表中添加另一列deleted
。然后,您可以在该行中设置deleted
标志,而不是删除该行。然后,您可以通过重置标志来恢复已删除的数据。
认为这可能对你有帮助..
答案 1 :(得分:0)
我可以建议2种基本方法(还有其他选择) 根据具体的设计和背景需求,在它们之间进行选择。
第一个 - 允许仅删除有效记录(推荐) 这种方法限制了允许的操作,只允许有效的操作 例如,这可以通过从有效选项的只读列表中选择ID来完成。删除后 - ID就会被删除,并且不再出现在GUI中。
第二个 - 允许所有内容,但在执行前或事后检查,然后(在两种情况下),向用户显示相应的消息。
例如,可以使用executeUpdate()
返回已更改的行数(在您的情况下删除),或者如果没有受影响的行,则可以执行此操作。
这两个选项广泛用于限制用户交互并提供基本指导 但是,在CRUD应用程序中,您需要仔细考虑任一选项如何影响您的应用程序,以及这两种实现的结果。