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();
}
这是我用代码编写的。...我希望该程序应同时匹配用户名和密码,然后继续前进...但是这没有发生....在数据库中,我的用户名带有相应的密码。请帮帮我!
答案 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)