gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 09:50:43 24 4
gpt4 key购买 nike

我正在 Netbeans 中构建一个 Java GUI 应用程序,旨在表示数字钱柜系统(或 ePOS 钱柜)。

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

我已成功将用户添加到数据库中,并使用包含 User 对象的 ArrayList 的内容填充 jList,但我不明白如何删除我在其中选择的用户j来自数据库的列表。

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

//  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 的代码。

谢谢。

最佳答案

我能够使用此解决方案解决我的问题:

  1. 将列表中我想要删除的项目的索引保存到变量中。
  2. 通过定位变量获取同一索引位置的模型元素。
  3. 根据所选索引创建用户对象的实例,记住强制转换用户对象类型。
  4. 最后,删除数据库条目和列表条目。

这是代码:

// 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");

}

关于java - 通过jList从数据库中删除对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54866096/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com