DredWulf
@DredWulf

Как в Java правильно сравнить строку полученную из БД с другой строкой?

//в queryResult хранится объект resultSet
    queryResult.next();
// НЕОБХОДИМО: сравнить введенный пользователем login с логином в БД

            if (login.equals(queryResult.getString("login"))){
                System.out.println("ЛОГИН ПРАВИЛЬНЫЙ !");
                if(password.equals(queryResult.getString("password"))){
                    System.out.println("ЛОГИН И ПАРОЛЬ ВЕРНЫ !");
                    return true;
                }
                else{
                    System.out.println("НЕВЕРНЫЙ ПАРОЛЬ !");
                    return false;
                }
            }
            else{
                System.out.println("НЕВЕРНЫЙ ЛОГИН");
                return false;
            }

Ошибка в том, что при вводе правильного логина, он все равно выдает "НЕВЕРНЫЙ ЛОГИН"
например:
переменная String login = "test"
queryResult.getString("login") - запрос к столбцу login возвращает String, "test"


login сравнивается с queryResult.getString("login") через login.equals и возвращает boolean, однако почему-то в любом случае возвращается false
  • Вопрос задан
  • 279 просмотров
Пригласить эксперта
Ответы на вопрос 1
azerphoenix
@azerphoenix Куратор тега Java
Java Software Engineer
Строки в Java сравниваются через equals(). Другое дело, что при сравнении возвращается false.
Исключите следующие моменты:
- запись в БД может быть в uppercase или lowercase или camelCase и т.д. Потому возвращается false
- в исходной строке или в строке из БД могут содержатся кириллические символы
- кодировка хранимой информации в БД отличается от utf8
если не получится решить вопрос, то скиньте ссылку на гит
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы