Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 通过jList从数据库中删除对象_Java_Mysql_Database_Object_Jlist - Fatal编程技术网

Java 通过jList从数据库中删除对象

Java 通过jList从数据库中删除对象,java,mysql,database,object,jlist,Java,Mysql,Database,Object,Jlist,我正在用Netbeans构建一个javagui应用程序,用于表示数字收款系统(或epostill) 我需要能够通过jList查看用户列表,以及修改和删除他们。每个用户都是使用用户模型类构建的对象,表示mySQL accdb数据库上的一条记录 我已成功地将用户添加到数据库,并使用包含用户对象的ArrayList的内容填充jList,但我不知道如何从数据库中删除我在jList中选择的用户 以下是从数据库中删除用户的代码: // removes users from the database pub

我正在用Netbeans构建一个javagui应用程序,用于表示数字收款系统(或epostill)

我需要能够通过jList查看用户列表,以及修改和删除他们。每个用户都是使用用户模型类构建的对象,表示mySQL accdb数据库上的一条记录

我已成功地将用户添加到数据库,并使用包含用户对象的ArrayList的内容填充jList,但我不知道如何从数据库中删除我在jList中选择的用户

以下是从数据库中删除用户的代码:

//  removes users from the database
public void removeUser (User dbUser) {

    try (Connection conn = setupConnection()) {

        // create SQL statement
        Statement stmt = conn.createStatement();

        // SQL query in string variable
        String sql = "DELETE FROM Users " +
                    "WHERE employee_number = " +
                     dbUser.getEmployeeNumber();

       // execute query on database
        stmt.executeUpdate(sql); 

    } catch (Exception ex) {

        String message = ex.getMessage();
        System.out.println("dbUser error: " + message);

    }

}
我对此有点理解,但通过jList将特定用户作为目标并将其从数据库中删除是我无法理解的

为了清晰起见,除非有人要求,否则我不会发布添加用户和填充jList的代码


谢谢。

我能用这个解决方案解决我的问题:

  • 将列表中要删除的项的索引保存到变量中
  • 通过以变量为目标,在相同的索引位置获取模型元素
  • 基于所选索引创建用户对象的实例,记住根据用户对象类型强制转换
  • 最后,删除数据库项和列表项
  • 代码如下:

    // validate that an item is selected
        if (user_lst.isSelectionEmpty()) {
    
            JOptionPane.showMessageDialog(null, "You haven't selected an account to remove from the list.");
    
        } else {
    
    
    
            // target object at list index
            int index = user_lst.getSelectedIndex();
    
            // remove object at list index
            model.getElementAt(index);
    
            // create instance of user based on selected index
            User u = (User) model.getElementAt(index);
    
    
            if (index < 0) {
    
                System.out.println("jList error: There are no items");
    
            } else {
    
                db.removeUser(u);
                model.remove(index);
    
            }
    
            // refresh list model
            user_lst.setModel(model);
    
            // confirm user was removed
            JOptionPane.showMessageDialog(null, "Account removed");
    
        }
    
    //验证是否选择了某个项目
    if(user_lst.isSelectionEmpty()){
    showMessageDialog(null,“您尚未选择要从列表中删除的帐户”);
    }否则{
    //列表索引处的目标对象
    int index=user_lst.getSelectedIndex();
    //删除列表索引处的对象
    model.getElementAt(索引);
    //基于所选索引创建用户实例
    用户u=(用户)model.getElementAt(索引);
    如果(指数<0){
    System.out.println(“jList错误:没有项目”);
    }否则{
    数据库删除用户(u);
    模型。删除(索引);
    }
    //刷新列表模型
    用户设置模型(模型);
    //确认用户已被删除
    showMessageDialog(null,“帐户已删除”);
    }