Java SQL 检查用户名是否已经存在

标签 java sql database

我正在尝试检查用户名是否已存在于表中: 数据库也将字段设置为唯一 该方法将返回一个 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/

相关文章:

php - 每当页面加载时更新 sql 表

mysql - 在mysql中创建自引用一对多关系

mysql - 如果有图像sql,则让用户具有用户的第一张图像

java - hibernate 一对多单向

java - 编写一个方法来查找形状数组中的最大表面积

Java通过 protected getter访问私有(private)父类(super class)成员

java - 使用 url 在 jsp 文件上显示照片

sql - ORA-00907 缺少右括号问题 - 在插入查询中按顺序选择

mysql - 匹配的行和更改的行之间的差异

mysql - 连接两个表并选择第二个表中不存在的行 1