Как удалить строку из привязанного JTable? - PullRequest
0 голосов
/ 03 октября 2018

У меня есть 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;
}

Даже когда я работал с несвязанной таблицей, я сделал это удаление строки из jtable , которое мне хорошо помогло.

Но теперь это таблица, связанная с MySQL, и я не могунайти способ удалить строку ... уже искали в интернете.Ничего не найдено.

PS: я использую netbeans.я щелкнул правой кнопкой мыши jtable> bind> elements, чтобы связать таблицу.

1 Ответ

0 голосов
/ 03 октября 2018

О, я нашел способ!

Сначала я изменил свой метод deleteItem, чтобы удалить его по идентификатору

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.
     } 

Возможно, это не самый красивый способ сделать это, но это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...