имена пользователей и пароли не совпадают, и программа не движется дальше - PullRequest
0 голосов
/ 27 октября 2018
try {
    String pass = tf2.getPassword().toString();
    Connection myConn = DriverManager.getConnection("jdbc:mysql://localhost:3306/javaproject", "root", "noor1032");
    PreparedStatement myStat = myConn.prepareStatement("select*from user_info where username=? and password=?");
    myStat.setString(1, tf1.getText());
    myStat.setString(2, pass);
    ResultSet Rs = myStat.executeQuery();
    if (Rs.next()) {
        f.dispose();
        new sharepage();
    } else {
        JOptionPane.showMessageDialog(f, "Invalid username or password", "Alert", JOptionPane.ERROR_MESSAGE);
    }
} catch (Exception f) {
    f.printStackTrace();
}

это то, что я написал в коде .... я хочу, чтобы программа соответствовала как имени пользователя, так и паролю, а затем двигалась вперед ...... Но этого не происходит .... В базе данных яесть имена пользователей с соответствующими паролями.Помогите мне пожалуйста !!!

Ответы [ 2 ]

0 голосов
/ 27 октября 2018

Заменить

String pass = tf2.getPassword().toString();

на

String pass = new String(tf2.getPassword());

Почему?

JPasswordField#getPassword() возвращает char[], а char[]#toString() не возвращает новую строку, содержащуюсимволы из массива char.Вместо этого он возвращает что-то вроде «[C @ 54bedef2».

Правильный способ преобразования char[] cc в строку - new String(cc)

0 голосов
/ 27 октября 2018

Изменить

myStat.setString(1, tf1.getText());

на

myStat.setString(1, tf1.getText().toString());

getText() возвращает Editable объект, а не String.

...