繁体   English   中英

Else 语句未在 SQL 数据库的 while 循环内执行

[英]Else statement not executing inside while loop of SQL database

else 语句在 while 循环中不起作用

public void loginButton() throws ClassNotFoundException, SQLException{
        Class.forName("com.mysql.jdbc.Driver");
        Connection con = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/finditdb","root","root");
        Statement stmt = con.createStatement();
        String usernameInput = usernameField.getText();
        String passwordInput = passwordField.getText();
        ResultSet rs = stmt.executeQuery("SELECT * FROM finditdb.login WHERE username like '" + usernameInput +"' and password like '" + passwordInput +"'");
        while(rs.next()){
            String usernameDb = rs.getString("username");
            String passwordDb = rs.getString("password");
            if(usernameInput.equals(usernameDb) && passwordInput.equals(passwordDb)){
                System.out.println("Access Granted..");
            }
            else {
                System.out.println("Access denied..");
            }
        }
    }

你可以试试这个,让我知道它是否按你想要的方式工作。

while(true){     
     if(rs.next()){
        String usernameDb = rs.getString("username");
        String passwordDb = rs.getString("password");
        if(usernameInput.equals(usernameDb) && passwordInput.equals(passwordDb)){
            System.out.println("Access Granted..");
            break;
          }

     }

     else{
            System.out.println("Access denied..");
            break;
     }
    }

我们没有在while loop括号中提到任何退出条件,所以循环一直运行直到没有更多的记录可以获取(否则将打印Access denied和 break)或者如果访问被授予(再次中断)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM