我正在尝试检查用户名是否已存在于表中: 数据库也将字段设置为唯一 该方法将返回一个 boolean 值,说明用户名是否已经存在。 我的代码中将 usernameExists var 设置为 true 的部分永远不会运行,即使用户名相同也是如此。
public static boolean CheckUsernameExists(String username)
{
boolean usernameExists = false;
try
{
Class.forName("com.mysql.jdbc.Driver");
Connection connection = DriverManager.getConnection(urlDB, usernameDB, passwordDB);
PreparedStatement st = connection.prepareStatement("select * from Members order by username desc");
ResultSet r1=st.executeQuery();
String usernameCounter;
if(r1.next())
{
usernameCounter = r1.getString("username");
if(usernameCounter == username) //this part does not happen even if it should
{
System.out.println("It already exists");
usernameExists = true;
}
}
}
catch (SQLException e)
{
System.out.println("SQL Exception: "+ e.toString());
}
catch (ClassNotFoundException cE)
{
System.out.println("Class Not Found Exception: "+ cE.toString());
}
return usernameExists;
}
如果您能提供帮助,我将不胜感激!
最佳答案
使用 if(usernameCounter.equals(username))
。字符串比较很棘手。这个已经详细讨论了here .
关于Java SQL 检查用户名是否已经存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21337830/