Java 无法删除搜索的值
下面的类是我的delete类,我想从数据库中删除用户,我有一个Add类和Search类,它们共享同一个数据库private database db 下面的类是我的数据库类,它有remove方法,我正试图将它传递给上面的Delete类Java 无法删除搜索的值,java,swing,odbc,tostring,jtextcomponent,Java,Swing,Odbc,Tostring,Jtextcomponent,下面的类是我的delete类,我想从数据库中删除用户,我有一个Add类和Search类,它们共享同一个数据库private database db 下面的类是我的数据库类,它有remove方法,我正试图将它传递给上面的Delete类 import java.util.*; public class Database {/** * * Map of users keyed on userId */ Map
import java.util.*;
public class Database
{/**
*
* Map of users keyed on userId
*/
Map <String, User> users;
/** @Database
* the empty map which would be used to collect the users.
*/
public Database()
{
users = new HashMap<String, User>();
}
/**
* Type for checking users
*/
public static void main(String [] args){
new Database();
}
/** check if the UserID is already in use if so return false, else
* add key pair to the Map.
* USERID will be key of map
* @
*/
public boolean addUser(User userIn)
{
String keyIn = userIn.getUSERID();
if (users.containsKey(keyIn))
{
return false;
}
else
{
users.put(keyIn, userIn);
return true;
}
}
/**
* @param remove the user with the given useridIn, from the Map
* check if user was removed and does not equal to no null
* @return If the user is not removed return false
*
* */
public boolean removeUser(String useridln)
{
if (users.remove(useridln)!= null)
{
return true;
}
else
{
return false;
}
}
/**
* return the number of users in the Map collection
*
*
* */
public int getTotalNumberOfUsers()
{
return users.size();
}
/** return the user with the given userid or null if no such user
* */
public User getUser (String useridIn)
{
return users.get(useridIn);
}
/** return the set of users in the collection
* set is used to store the set of users and to get the set of keys.
* iterate through the keys and put each value in the userSetn and return the set of users
*
*
* */
public Set<User> getAllUsers ()
{
Set<User> userSet = new HashSet<User>();
Set<String> theKeys = users.keySet();
for (String userid : theKeys)
{
User theUser = users.get(userid);
userSet.add(theUser);
}
return userSet;
}
public String toString(){
return users.toString();
}
}
在Add类中,我可以添加用户
User u = new User(Inputusername.getText(), selection , age.getText(), inputuserid.getText());
db.addUser(u);
我想从数据库中删除添加的用户,但我不知道为什么不将其删除,因为我已将字符串传递给delete类。请尝试遵循,特别是关于字段和方法如何以小写字母开头的规则。这将使您的代码更易于阅读
另外,尽量把你的问题表达得更清楚。到底是什么不起作用?错误消息是什么,或者预期行为与实际行为是什么
第一行接缝一般错误=User是什么意思?
但更重要的是:
该方法需要一个字符串,而不是用户对象,因此如果改为传递userID.getText,它应该可以工作
这是你的问题吗?我不确定,因为您也提到删除搜索值,但我看不到搜索字段。我设法得到了正确答案,我是用用户对象而不是用户id调用它的
User u = db.getUser(userID.getText());
db.removeUser(userID.getText());
欢迎来到SO!1请对输出、代码段和代码使用代码格式。2为了更快地获得更好的帮助,请发布一个。3公共类Delete extends JFrame可能应该改为扩展JDialog。您好,谢谢,但我的代码中确实有,只是我无法删除我添加的内容。是的,下次我会记住的。下次你可以编辑你的问题时,我会记住的。否则,我将期待下次回答。因此,代码中最重要的部分似乎是db.removeUser您没有告诉我们您正在使用哪个数据库库(如果有的话),或者db.removeUser是否是您编写的。很难调试我们看不到的东西。这显然是一个数据库问题,而不是Swing问题。我要问的问题包括…db.getUser是否真的返回了一个对象?如果是,removeUser是如何工作的?是否有任何错误消息?您是否有单元测试表明db.removeUser在不涉及所有gui代码/用户输入的情况下正常工作?抱歉,花了这么长时间才找到如何使用代码格式,我正在尝试调用removeUser方法。谢谢,这是我的错,我没有说清楚,但是thanks@Mohammed阿里:没问题。如果您的问题得到了回答,您可以按说明单击左侧的复选标记来接受答案。而且,如果你的问题已经得到了回答,那么你也没有必要自己发布答案;
User u = new User(Inputusername.getText(), selection , age.getText(), inputuserid.getText());
db.addUser(u);
User u = User db.getUser(userID.getText());
db.removeUser(u);
public boolean removeUser(String useridln)
User u = db.getUser(userID.getText());
db.removeUser(userID.getText());