Java ResultSet закрывается рано

-4

У меня проблема, которую я не могу понять. Я делаю регистрацию и вход в java с помощью swing и подключаю его к базе данных sqlite с помощью java.sql. * И jdbc. Когда я пытаюсь войти в систему после регистрации, он показывает мне, что ResultSet закрыт. Кто-нибудь может мне помочь. Я полагаю, что проблема заключается в одном из них. Если нет, то здесь есть ссылка на проект https://bitbucket.org/jrdevtech/library-management-system/src. Я полагаю, что это будет в AppGui. Я использовал ResultSet только в методе isFirstUse. и две кнопки действий


public void actionPerformed (ActionEvent arg0) {

            PreparedStatement prep = null;
            try {
                String query = "INSERT INTO newuser"
                        + "(name, dob, phonenumber, username, 
                            password, uuid)"
                        + "VALUES (?,?,?,?,?,?)";
                connection = databaseConnection.dataConnector();
                prep = connection.prepareStatement(query);
                prep.setString(1, txtName.getText());
                prep.setString(2, txtDob.getText());
                prep.setString(3, txtPhone.getText());
                prep.setString(4, txtUsername.getText());
                prep.setString(5, txtPassword.getPassword().toString());
                prep.setString(6, UUID.randomUUID().toString());
                prep.executeUpdate();

            }catch(Exception e) {JOptionPane.showMessageDialog(null,e);}
            finally{
                try {
                    if(prep != null) {
                        prep.close();
                    }
                    if(connection != null) {
                        connection.close();
                    }
                } catch (SQLException e) {
                    JOptionPane.showMessageDialog(null, e);
                }
            }
        }
    });

public void actionPerformed (ActionEvent arg0) {PreparedStatement prep = null;

int correct = 0;

try {
    String query = "SELECT * FROM newuser WHERE username=? AND 
    password=?";
    connection = databaseConnection.dataConnector();
    prep = connection.prepareStatement(query);
    prep.setString(1, txtLoginUsername.getText());
    prep.setString(2, txtLoginPassword.getPassword().toString());
    ResultSet rs = prep.executeQuery();
    while(rs.next()){
        JOptionPane.showMessageDialog(null,rs.getString("username"));
        JOptionPane.showMessageDialog(null,rs.getString("password"));
        if(correct == 2) {isLoggedIn = true; 
           JOptionPane.showMessageDialog(null,"You Are Logged In");}
        else if(correct != 2) {JOptionPane.showMessageDialog(null, 
                "Invalid Login Credentials");}
    }
    JOptionPane.showMessageDialog(null, rs.getString("username"));
    }catch (SQLException e) {
                JOptionPane.showMessageDialog(null,e);
            }
            finally {
                try {

                    if(prep != null) {
                        prep.close();
                    }
                    if(connection != null) {
                        connection.close();
                    }
                }catch(Exception e){
                       JOptionPane.showMessageDialog(null,e);}
            }
        }
    });

  • 0
    Вы должны опубликовать минимальный, полный и проверяемый пример . Ссылка на ваш проект не подходит.
  • 0
    Пожалуйста, вставьте свой код в сам вопрос, красиво отформатированный. Раздел справки содержит больше советов о том, как улучшить свой вопрос и как получить хороший ответ.
Показать ещё 1 комментарий
Теги:
swing

1 ответ

0

Я понял, что в наборе результатов ничего не найдено с запросом, поэтому в заключение я просто переписал запрос немного и переделал, как я сохранил сохраненный пароль, так как он сравнивался по-другому с полем пароля

Ещё вопросы

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