2013-05-19 4 views
0

Этот код:заморожена программа после удаления записи (GUI)

private void btnDeleteRecordActionPerformed(java.awt.event.ActionEvent evt) {             
    // TODO add your handling code here: 
    try { 
     rs.deleteRow(); 
     stmt.close(); 
     rs.close(); 

     stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, 
       ResultSet.CONCUR_UPDATABLE); 

     String sql = "SELECT * FROM Workers"; 
     rs = stmt.executeQuery(sql); 

     rs.next(); 
     int id_col = rs.getInt("ID"); 
     String id = Integer.toString(id_col); 
     String first = rs.getString("First_Name"); 
     String last = rs.getString("Last_Name"); 
     String job = rs.getString("Job_Title"); 

     textID.setText(id); 
     textFirstName.setText(first); 
     textLastName.setText(last); 
     textJobTitle.setText(job); 
    } catch (SQLException err) { 
     // System.out.println(err.getMessage()); 
     JOptionPane.showMessageDialog(Workers.this, err.getMessage()); 
    } 

}   

AfteI удалить одну строку из базы данных программы замораживания. Я хочу, чтобы эта программа была в состоянии работать после нажатия кнопки «тэг» и «превентивная кнопка» будет работать.

Я использовал Thie: http://www.homeandlearn.co.uk/java/delete_a_record_from_a_database.html

+0

Для лучшей помощи в ближайшее время опубликуйте [SSCCE] (http://sscce.org/). Вычислите БД для жестко кодированных данных. –

+0

@ artiny: избегайте больших вычислений в edt: см. Http://www.oracle.com/technetwork/articles/javase/swingworker-137249.html – Jayan

+0

, что является моей ошибкой: Исключение в потоке "AWT-EventQueue-0 "java.lang.NullPointerException \t в Employees.Workers.btnDeleteRecordActionPerformed (Workers.java:801) \t в Employees.Workers.access $ 600 (Workers.java:28) \t в Employees.Workers $ 7.actionPerformed (Workers.java : 268) workes.java:80 STMT = con.createStatement (ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); Workers.java:28 общественного класса Рабочие распространяется javax.swing.JFrame { Workers.java:268 btnDeleteRecordActionPerformed (ЭВТ); – artiny

ответ

0

Во-первых:

Скорее определить ваше заявление и ResultSet внутри метода вы делаете работу, это лучше использовать объем и безопаснее, особенно при работе с многопоточной кодом ...

во-вторых:

при запросе «Пролетарии», сопоставьте каждую строку в POJO и поставить все POJO-х в коллекции, то есть ваше приложение работает с коллекцией вместо ResultSet.

В-третьих:

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

+0

Если это не домашнее задание, и у вас есть свобода использования фреймворков, я бы рекомендовал использовать их, они делают такие вещи очень простыми. Взгляните на рамки, такие как Hibernate, MyBatis ... – NeilA

0

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

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