java - 用户凭据与数据库的比较

标签 java

我有这个代码:

for(int i=0;i<numRows;i++)
        {
            String Usernames = rs.getString("Username");
            String Password = rs.getString("Password");
            String getAcc = rs.getString("UserType");
            rs.next();
            if(Usernames.contains(UsernameIn.trim())&&Password.contains(PasswordIn.trim()))
            {
                if(getAcc.trim().equals("admin"))
                {
                    clear();
                    AdminUser.UTypeAdmin(args, UsernameIn, rs, dbTable(), path);
                }
                if(getAcc.trim().equals("standard"))
                {
                    clear();
                    StandardUser.UTypeStandard(args, UsernameIn, rs, dbTable(),path);
                }
            }
            if(!Usernames.contains(UsernameIn.trim())&&!Password.contains(PasswordIn.trim()))
            {
                System.out.println("Invalid Credentials Entered");
                Thread.sleep(2000);
                clearandreset(args);
            }
        }   

理想情况下,程序会将用户的输入与结果集进行比较,并确定输入是否匹配。当正确的用户输入其凭据时,应用程序将正常运行。最终应用程序按预期重置,但当输入另一个有效用户时,应用程序显示输入的凭据无效,从而破坏应用程序。有人能解决这个问题吗?

最佳答案

首先,您应该将“无效凭据”代码移到循环之外。否则,仅当凭据与第一行匹配时它才会起作用。

第二,检查您是否没有重复使用相同的结果集实例两次

for(int i=0;i<numRows;i++)
{
   String Usernames = rs.getString("Username");
   String Password = rs.getString("Password");
   String getAcc = rs.getString("UserType");
   rs.next();
   if(Usernames.contains(UsernameIn.trim())&&Password.contains(PasswordIn.trim()))
   {
      if(getAcc.trim().equals("admin")) {
          clear();
          AdminUser.UTypeAdmin(args, UsernameIn, rs, dbTable(), path);
      }
      if(getAcc.trim().equals("standard")) {
          clear();
          StandardUser.UTypeStandard(args, UsernameIn, rs, dbTable(),path);
      }
   }
}

// We have traversed all rows but not found matching user
System.out.println("Invalid Credentials Entered");
Thread.sleep(2000);
clearandreset(args);

关于java - 用户凭据与数据库的比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28874214/

相关文章:

java - 子列表索引越界异常

java - ZoneId ID 的本地化名称

java - 如何使用常量将 hibernate 实体映射到另一个实体

java - 将两个阶段一个放在另一个之上是一个坏主意吗? libgdx

java - 静态字段的 JNI 字段 ID

java - Glassfish 3.1.2 FacesServlet 问题

java - Java中的正弦波曲线拟合

java - Selenium 服务器和 Java

java - 查找字符串值的最佳匹配 - Oracle/Java

java - 与浏览器相比,Android Web View 非常慢且没有响应 为什么?