此代码:
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从数据库中删除一行程序冻结。我希望该程序能够在删除按钮之后工作,并且可以使用频繁的按钮。
我用过:http://www.homeandlearn.co.uk/java/delete_a_record_from_a_database.html
答案 0 :(得分:0)
首先:
而是在您正在进行工作的方法中定义Statement和ResultSet,这样可以更好地使用范围并且更安全,尤其是在使用多线程代码时......
其次:
查询“Workers”时,将每一行映射到POJO并将所有POJO放在一个集合中,然后让您的应用程序使用集合而不是ResultSet。
第三
在进行更新/删除时,创建更新/删除语句并使用条目(您尝试修改的)id(或其他类型的唯一引用)到该语句。
答案 1 :(得分:0)
看起来你的线程正在从NullPointerException中死亡。你应该做的第一件事是找出导致NullPointerException并修复它的bug。