Member 13856100 Ответов: 1

Как получить значение из базы данных и сравнить его со строкой


Привет, я хочу создать страницу входа в систему, чтобы только пользователь, у которого была роль администратора, мог войти в систему. вот мои базы данных :

tb_users :
функция user_id (ПК строку)
пароль

tb_user_auth :
функция user_id (ФК,строка)
objects_id // содержит роль пользователя(строка)

проблема в том, что мне кажется, что я ничего не извлекаю из objects_id, поэтому есть сообщение вроде этого : "проверьте свой пароль и идентификатор пользователя". не будете ли вы так добры сказать мне, что не так с моим кодом?

Что я уже пробовал:

частный недействительными cmd_loginActionPerformed(Ява.авт.событие.ActionEvent evt) {
пробовать{
Строка sql = "select * from tb_users where user_id=? а пароль=?";
ПСТ=соед.prepareStatement(SQL и);
ПСТ.метод setString(1,txt_userid.с текстом());
ПСТ.метод setString(2, txt_pass.с текстом());
РС=ПСТ.метод executequery();
RS.close();


Строка sql2 = "select * from tb_userauth";
PST=conn.prepareStatement(sql2);
//PST.setString(1,txt_userid.getText());
РС=ПСТ.метод executequery();
//Строки objek_id = нуль;



если(RS.next()){
Строка objek = "admin";
Строка objek_id = RS.getString("objects_id");

if (objek_id.equals(objek)){

JOptionPane.showMessageDialog(null,"идентификатор пользователя и пароль верны");
подменю1 sm1 = новое подменю1();
ѕм1.функцию setvisible(истина);
ѕм1.пакет();
sm1.setLocationRelativeTo(null);
ѕм1.setDefaultCloseOperation(форму.EXIT_ON_CLOSE);
это.распоряжаться();
}еще{
JOptionPane.showMessageDialog(null,"проверьте свой пароль и идентификатор пользователя ");
} }

}catch (исключение e){
JOptionPane.showMessageDialog(нуль,е);
}


}

1 Ответов

Рейтинг:
0

OriginalGriff

Очевидный ответ: идентификатор пользователя и пароль не совпадают, поэтому ничего не возвращается.
Используйте отладчик, чтобы одним шагом пройти через ваш код и точно проверить, что происходит, и что находится в различных переменных.

Но, пожалуйста, не делайте этого: никогда не храните пароли в открытом тексте - это серьезная угроза безопасности. Здесь есть некоторая информация о том, как это сделать: Хранение паролей: как это сделать.[^] - это на C#, но код довольно очевиден.