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

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

Войти через центр авторизации
Похожие вопросы
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽