如何从绑定的 JTable 中删除行?
How to delete row from bound JTable?
我有一个 JTable
绑定到 MySQL。我已经完成了插入数据的代码。
但是我不知道怎么删除
我有这个示例删除方法,适用于其他简单项目。
public String deleteItem(String name) {
String answer = "";
try {
Connection con = Connect.getConnection();
String sql = "Delete FROM item where name = ?";
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1, name);
ps.executeUpdate();
ps.close();
con.close();
answer = "OK";
} catch (Exception e) {
answer = e.toString();
}
return answer;
}
即使我使用未绑定的 table 我也这样做了 remove row from jtable 对我来说效果很好。
但现在它是一个 table 绑定到 MySQL,我找不到删除行的方法...已经在互联网上搜索过了。什么也没找到。
PS:我正在使用 netbeans。我右击 jtable > bind > elements ,绑定 table.
哦,我找到方法了!
首先,我更改了 deleteItem 方法,按 id 删除
ItemDAO.java
public String deleteItem(int ID_item) {
String answer = "";
try {
Connection con = Connect.getConnection();
String sql = "Delete FROM item where ID_Item = ?";
PreparedStatement ps = con.prepareStatement(sql);
ps.setInt(1, ID_item);
ps.executeUpdate();
ps.close();
con.close();
answer = "OK";
} catch (Exception e) {
answer = e.toString();
}
return answer;
}
然后删除按钮的动作是这样的。
Form.java
private void btnDeleteActionPerformed(java.awt.event.ActionEvent evt) {
int column = 0; // get the first column which is ID_Item
int row = tableItem.getSelectedRow(); //get row selected by user
int value = (int) tableItem.getModel().getValueAt(row, column); // store ID_Item value
String answer = new ItemDAO().deleteItem(value); // call up deleteItem method
if(answer.equals("OK")) {
System.out.println("OK"); // just for test
itemList.clear(); // this is needed to update the bound table after Insert/Delete/Update etc
itemList.addAll(itemQuery.getResultList()); // same as above comment
}else{
System.out.println("ERROR"); // just for test.
}
也许这不是最漂亮的方法,但它确实有效。
我有一个 JTable
绑定到 MySQL。我已经完成了插入数据的代码。
但是我不知道怎么删除
我有这个示例删除方法,适用于其他简单项目。
public String deleteItem(String name) {
String answer = "";
try {
Connection con = Connect.getConnection();
String sql = "Delete FROM item where name = ?";
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1, name);
ps.executeUpdate();
ps.close();
con.close();
answer = "OK";
} catch (Exception e) {
answer = e.toString();
}
return answer;
}
即使我使用未绑定的 table 我也这样做了 remove row from jtable 对我来说效果很好。
但现在它是一个 table 绑定到 MySQL,我找不到删除行的方法...已经在互联网上搜索过了。什么也没找到。
PS:我正在使用 netbeans。我右击 jtable > bind > elements ,绑定 table.
哦,我找到方法了!
首先,我更改了 deleteItem 方法,按 id 删除
ItemDAO.java
public String deleteItem(int ID_item) {
String answer = "";
try {
Connection con = Connect.getConnection();
String sql = "Delete FROM item where ID_Item = ?";
PreparedStatement ps = con.prepareStatement(sql);
ps.setInt(1, ID_item);
ps.executeUpdate();
ps.close();
con.close();
answer = "OK";
} catch (Exception e) {
answer = e.toString();
}
return answer;
}
然后删除按钮的动作是这样的。
Form.java
private void btnDeleteActionPerformed(java.awt.event.ActionEvent evt) {
int column = 0; // get the first column which is ID_Item
int row = tableItem.getSelectedRow(); //get row selected by user
int value = (int) tableItem.getModel().getValueAt(row, column); // store ID_Item value
String answer = new ItemDAO().deleteItem(value); // call up deleteItem method
if(answer.equals("OK")) {
System.out.println("OK"); // just for test
itemList.clear(); // this is needed to update the bound table after Insert/Delete/Update etc
itemList.addAll(itemQuery.getResultList()); // same as above comment
}else{
System.out.println("ERROR"); // just for test.
}
也许这不是最漂亮的方法,但它确实有效。