#java #database #parameters #initialization #derby
#Ява #База данных #параметры #инициализация #дерби
Вопрос:
Я новичок в Java и дерби и немного заблудился.
Я использую jframe и derby. Пытаюсь выполнить проверку электронной почты / пароля. Сначала я объединялся с утверждением, но прочитал в Интернете, что лучше всего использовать подготовленные утверждения. При использовании электронной почты в качестве первичного ключа в заявлении я получал лексическую ошибку из-за»@». Теперь , с подготовленным оператором, я получаю «По крайней мере, один параметр текущего оператора неинициализирован».
Не уверен, что ввожу что-то не так….
Это метод, который я создал.
публичный недействительный логин() {
if ((jtxtEmail.getText().equals(""))) { JOptionPane.showMessageDialog(null, "Debes ingresar tu email y contraseña.", "Error al ingresar Usuario y contraseña", JOptionPane.ERROR_MESSAGE); } else { try { conectar(); ps = conn.prepareStatement("select email,password,nombre from Usuarios where email=?"); ResultSet rs = ps.executeQuery(); while (rs.next()) { if (rs.getString(1).equals(jtxtEmail.getText()) amp;amp; rs.getString(2).equals(jtxtPassword.getText())){ JOptionPane.showMessageDialog(null, "Bienvenido" rs.getString(3), "Validacion Correcta", JOptionPane.INFORMATION_MESSAGE); new DirectoryMale().setVisible(true); }else{ JOptionPane.showMessageDialog(null, "Debes ingresar tu email y contraseña.", "Error al ingresar Usuario y contraseña", JOptionPane.ERROR_MESSAGE); } } desconectar(); ps.close(); } catch (HeadlessException | SQLException ex) { JOptionPane.showMessageDialog(null, "Error.n" ex.getMessage()); } }
}
Большое спасибо за помощь нубу, лол…
Ответ №1:
Вам необходимо установить значение для каждого параметра, указанного a ?
, перед вызовом ps.executeQuery()
. Например, вы могли бы сделать:
ps = conn.prepareStatement( "select email,password,nombre from Usuarios where email=?"); ps.setString(1, "henry.fonda@mgm.com"); // added this line ResultSet rs = ps.executeQuery();
В вашем запросе объявлен только один параметр, и именно поэтому включен один установщик ps
.