сравнение значения из базы данных со строкой, получающей ошибку java.sql.SQLException: для параметра 1 не указаны значения

0

Я хочу создать страницу входа, в которую может войти только администратор.

Моя база данных: - пароль пользователя tb_users user_id (PK)

-tb_userauth user_id (FK) objects_id (содержат роли пользователя, такие как администратор и клиент)

это моя программа:

private void cmd_loginActionPerformed(java.awt.event.ActionEvent evt) {                                          
    try{
        String sql = "select * from tb_users where user_id=? and password=?";           
        PST=conn.prepareStatement(sql);
        PST.setString(1,txt_userid.getText());
        PST.setString(2, txt_pass.getText());
        RS=PST.executeQuery();
        RS.close();


        String sql2 = "select * from tb_userauth where objects_id=?";           
        PST=conn.prepareStatement(sql2);
        RS=PST.executeQuery();
        String objek = "admin";
        String objek_id = RS.getString("objects_id");        

        if(RS.next()){

             if (objek.equals(objek_id)){

            JOptionPane.showMessageDialog(null,"user id and password correct");
             submenu1 sm1 = new submenu1();
             sm1.setVisible(true);
             sm1.pack();
             sm1.setLocationRelativeTo(null);
             sm1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
             this.dispose();
        }else{
            JOptionPane.showMessageDialog(null,"check your password and user id ");
        } }  

    }catch (Exception e){
        JOptionPane.showMessageDialog(null,e);
    }


}

и я получил ошибку, подобную этой: java.sql.SQLException: Нет значений, указанных для параметра 1

это меня смущает, потому что я уже использую String objek_id = RS.getString("objects_id");

что-то не так с моим ResultSet?

  • 3
    Вы не устанавливаете параметр ( objects_id ) во втором запросе. что не понятно?
  • 0
    Таблица 'tb_users' имеет столбец 'objects_id'
Показать ещё 2 комментария
Теги:

1 ответ

0

Вы пропустили параметр второго подготовленного оператора. Я предполагаю, что вы допустили ошибку в запросе, поэтому я изменяю запрос и комментирую изменения. Я не запускал и не тестировал, поэтому некоторые проблемы могут быть там. У вас есть идея по этому поводу.

private void cmd_loginActionPerformed(java.awt.event.ActionEvent evt) {                                          
  try{
    String sql = "select * from tb_users where user_id=? and password=?";           
    PST=conn.prepareStatement(sql);
    PST.setString(1,txt_userid.getText());
    PST.setString(2, txt_pass.getText());
    RS=PST.executeQuery();
    String user_id = RS.getString("user_id"); //I don't know the type of use_id so I guess it as string

    RS.close();


    String sql2 = "select * from tb_userauth where user_id=?"; //I change object_id to user_id   

    PST=conn.prepareStatement(sql2);
    PST.setString(1,user_id);//this might not be string
    RS=PST.executeQuery();
    String objek = "admin";
    String objek_id = RS.getString("objects_id");        

    if(RS.next()){

         if (objek.equals(objek_id)){

        JOptionPane.showMessageDialog(null,"user id and password correct");
         submenu1 sm1 = new submenu1();
         sm1.setVisible(true);
         sm1.pack();
         sm1.setLocationRelativeTo(null);
         sm1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         this.dispose();
    }else{
        JOptionPane.showMessageDialog(null,"check your password and user id ");
    } 
  }  

  }catch (Exception e){
    JOptionPane.showMessageDialog(null,e);
  }


}
  • 0
    не только запросить другие все комментарии в конце строки. затем java.sql.SQLException: никакие значения, указанные для параметра 1, исключение не должно произойти.
  • 0
    здесь есть некоторое недопонимание .. я использую свой второй запрос, чтобы получить значения objects_id из базы данных, а затем сравнить его с 'admin'. если я изменю свой второй запрос на String sql2 = "select * from tb_userauth где user_id =?"; как вы предлагаете, я не получаю никаких значений из objects_id @ janith1024
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню