Система входа в систему JSF - определено ли исключение SQLE? - PullRequest
0 голосов
/ 10 марта 2020

Что ж, спасибо людям, которые действительно пытались помочь мне, но я выяснил, в чем заключалась моя проблема: MYSQL скрипт заставил его искать «Admin1», который является моим логином, когда он должен был искать имя пользователя и пароль поэтому пришлось изменить мой запрос, чтобы сделать это. Я оставлю свое решение для будущих учеников.

    public void dbData(String UName, String PWord) {
    try {
        Class.forName("com.mysql.jdbc.Driver");
        Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/unidb?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC", "root", "Safia10122014");
        String SQL = "select `Username`, `Password` from `SPAS_Login_Details` where `Username` like 'MWR0025'";

        Statement statement = con.createStatement();

        ResultSet resultSet = statement.executeQuery(SQL);
        resultSet.next();
        dbUname = resultSet.getString(1);
        dbPword = resultSet.getString(2);

    } catch (ClassNotFoundException | SQLException e) {
        e.printStackTrace();
        System.out.println(e);
    }
}

public String validation() {
    dbData(name, password);

    if (name.equalsIgnoreCase(dbUname) && password.equalsIgnoreCase(dbPword)) {
        return "Admin_home";
    } else {
        return "";
    }
}

Ответы [ 2 ]

0 голосов
/ 13 марта 2020

Как видно в отредактированном посте:

    public void dbData(String UName, String PWord) {
    try {
        Class.forName("com.mysql.jdbc.Driver");
        Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/unidb?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC", "root", "Safia10122014");
        String SQL = "select `Username`, `Password` from `SPAS_Login_Details` where `Username` like 'MWR0025'";

        //String SQL = "select * from `SPAS_Login_Details` where `Username` = 'MWR0025' and `Password` = 'MWR0025'";
        //String SQLA = "select * from `SPAS_Login_Details` where `Username` = 'QD0040' and `Password` = 'QD0040'";
        //String SQLB = "select * from `SPAS_Login_Details` where `Username` = 'HB0041' and `Password` = 'HB0041'";
        //String SQLC = "select * from `SPAS_Login_Details` where `Username` = 'VV0042' and `Password` = 'VV0042'";
        //String SQLD = "select * from `SPAS_Login_Details` where `Username` = 'MA0043' and `Password` = 'MA0043'";
        //String SQLE = "select * from `SPAS_Login_Details` where `Username` = 'NF0044' and `Password` = 'NF0044'";

        Statement statement = con.createStatement();

        ResultSet resultSet = statement.executeQuery(SQL);
        resultSet.next();
        dbUname = resultSet.getString(1);
        dbPword = resultSet.getString(2);

    } catch (ClassNotFoundException | SQLException e) {
        e.printStackTrace();
        System.out.println(e);
    }
}

public String validation() {
    dbData(name, password);

    if (name.equalsIgnoreCase(dbUname) && password.equalsIgnoreCase(dbPword)) {
        return "Admin_home";
    } else {
        return "";
    }
}
0 голосов
/ 10 марта 2020

Ваши коды выглядят хорошо, я думаю, что причина, по которой вы не направлены в дом Admin_, заключается в том, что вы не вызвали функцию "checkValidUser". Здесь его следует вызывать

if (rs.next ()) {checkValidUser ():}

, если ошибок не найдено, программа должна работать правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...