用户名和密码不匹配,程序无法继续进行

时间:2018-10-27 09:32:03

标签: java mysql-workbench

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 :(得分:0)

更改

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

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

getText()返回Editable对象,而不返回String

答案 1 :(得分:0)

替换

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

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

为什么?

JPasswordField#getPassword()返回char[],而char[]#toString()不返回包含char数组中字符的新String。相反,它返回类似“ [C @ 54bedef2””的信息。

char[] cc转换为字符串的正确方法是new String(cc)