Как получить значение из базы данных в программе JAVA из заданной строки и столбца c? - PullRequest
0 голосов
/ 20 марта 2020

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

Я получаю ввод от пользователя для ввода имени пользователя и пароля через консоль и проверяю, соответствует ли он строке в таблице.

Statement st=Myconn.createStatement();

ResultSet rs=st.executeQuery("select * from new_table");

String getusnm=rs.getString("username")

String get pswd=rs.getString("password");

Следующее, я хочу отобразить имя пользователя из таблицы, если имя пользователя и пароль совпадают. Итак, как я могу получить имя пользователя, используя тот же набор результатов, что и строка?

Я использовал:

String getname=rs.getString("name","where usnm = user"); // user is the String inputted from the console

, но, похоже, он не работает.

Пожалуйста, помогите мне с этим.

Спасибо.

1 Ответ

2 голосов
/ 20 марта 2020

Вы должны использовать в своем запросе SQL предложение WHERE, которое ограничивается именем пользователя и паролем:

String sql = "SELECT * FROM new_table WHERE usnm = ? AND pass = ?";
PreparedStatement st = conn.prepareStatement(sql);
st.setString(1, username);
st.setString(2, password);
ResultSet rs = st.executeQuery();
if (rs.next()) {
    String username = re.getString("usnm");
}

Обратите внимание, что в общем случае хранить пароли в виде открытого текста в вашей базе данных - это плохая практика. Таблица. Более типично, вы будете хэшировать входящие пароли перед их вставкой. Затем, чтобы подтвердить входящий пароль пользователя, вы также должны иметь его sh, а затем сравнить два хэша.

...