Получить имя пользователя и тип пользователя в базе данных для программы Java

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

введите здесь описание изображения

Я уже мог получить имя пользователя с типом пользователя, когда пользователь входит в систему со своим именем пользователя. Но теперь у меня есть проблема, программа работает правильно, единственное, что программа показывает все имя пользователя и тип пользователя, даже если я вхожу в систему с именем пользователя: Fuhans.

Я хочу, чтобы программа отображала только имя пользователя, вошедшего в систему (например: я вхожу в систему с именем пользователя: Fuhans, и программа показывает окно сообщения, в котором отображается имя пользователя (Fuhans) и только тип пользователя этого имени пользователя (Администратор), а не все Имя пользователя в базе данных.

Как мне это решить?

Вот мой код: (написано с использованием Java)

private void GetUsername(Connection conn, Statement state, ResultSet result)
    {
        try
        {
            String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
            Class.forName(driver);

            String url = "jdbc:odbc:Database";

            conn = DriverManager.getConnection(url);

            state = conn.createStatement();

            String query = "select Username, UserType from Member";

            result = state.executeQuery(query);

            while(result.next())
            {
                user = result.getString("Username");
                userType = result.getString("UserType");

                _userInformation.setUser(user);
                _userInformation.setUserType(userType);

                _sound.PlaySound(1);
                _infoBox.ShowMessageBox("Welcome: " + _userInformation.getUser() + " - " + _userInformation.getUserType() + " ! ", "Welcome" , 1);
            }
        } 

        catch (Exception e) 
        {
            System.err.println(e.getMessage());

            _sound.PlaySound(2);

            _infoBox.ShowMessageBox(e.getMessage(), "Error", 2);

            _reminder = new Reminder(1);

            JOptionPane.showOptionDialog(null, "Program will be closed due to error!", "Error", JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE, null, new Object[]{}, null);

            System.exit(0);
        }
    }

Большое спасибо!


person Kaoru    schedule 18.11.2013    source источник


Ответы (2)


Измените этот запрос:

select Username, UserType from Member

To

select Username, UserType from Member where Username=? and UserType=?

И передать соответствующий параметр в ?. В основном вы получаете все записи без фильтрации.

person Pradeep Simha    schedule 18.11.2013
comment
и как мне это сделать, сэр? Я новичок в этом вопросе .. Я уже изменил способ, который вы предлагаете, но это дало мне ошибку COUNT поле неверно - person Kaoru; 18.11.2013
comment
Вам нужно использовать PreparedStatement, чтобы сделать это, пожалуйста, обратитесь в Google, вы получите хорошие примеры, я оставил это как упражнение для вас. :) - person Pradeep Simha; 18.11.2013

Вам нужно предложение where, чтобы связаться с вошедшим в систему участником.

person Pierre Arlaud    schedule 18.11.2013