2015-12-18 2 views
0

Я работаю над базовым CRUD-приложением на Java. У меня есть форма JFrame с добавлением, удалением, редактированием и обновлением. Я создал кнопку удаления только с возможностью поиска по идентификатору пользователя и удалением всей записи из таблицы, но я смущен тем, что делать, если идентификатор не существует или идентификатор уже удален. Я получаю одно и то же сообщение во всех трех сценариях в блоке try catch. Может ли кто-нибудь помочь мне проектировать ошибки, чтобы показать, когда идентификатор пользователя не существует и когда идентификатор пользователя уже удален?Удалить проверку addon в моей форме jframe

Код удаления кнопки:

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

я могу предложить 2 основных подхода (есть дополнительные опции конечно).
Выбор между ними осуществляется по конкретному дизайну и потребностям контекста.

Первый - разрешить удаление только действительных записей (рекомендуется).
Этот подход ограничивает допустимые операции и разрешает только действительные операции.
Это можно сделать, например, выбрав идентификаторы из списка допустимых параметров только для чтения. После удаления - идентификатор просто удаляется и больше не отображается в графическом интерфейсе.

Второй - разрешить все, но проверить перед выполнением или после факта, а затем (в обоих случаях) отобразить соответствующее сообщение пользователю.
Это можно сделать, например, с помощью executeUpdate(), который возвращает количество строк, которые были изменены (удалены в вашем случае), или 0, если ни одна из них не была затронута.

Оба варианта широко используются для ограничения пользовательских взаимодействий и обеспечения базового руководства.
В приложениях CRUD, однако, вам необходимо внимательно изучить, как любой вариант может повлиять на ваше приложение, и каковы будут результаты реализации.

+0

можете ли вы отправить примеры кода для обоих предложений, которые я новичок в java – Franco

0

Вы можете использовать другую таблицу с удаленных ID значений, и если вы хотите, вы можете добавить удален время, пользователь, который удалил эту ID как столбцы этой таблицы.

Если вы хотите восстановить свои данные, я могу предложить добавить еще один столбец как deleted в текущей таблице. Затем вместо удаления строки вы можете установить флаг deleted в этой строке. Затем вы можете восстановить удаленные данные, сбросив флаг.

Думает, что может помочь вам ..

Смежные вопросы