我试图通过制作一个简单的Swing登录表单来进行Java的复习,昨天我遇到的问题是它根本无法输出,现在我开始工作了。现在我遇到的问题是,由于显示其他条件,用户名或密码未被验证。请检查我出错的地方,是的,数据库的字段为admin / admin,但仍未进行验证。这是我的代码。
private void btnLoginActionPerformed(java.awt.event.ActionEvent evt) {
if(Username.getText().length()==0) {
JOptionPane.showMessageDialog(null, "Please fill up blank fields!");
}
else if(Password.getPassword().length==0 ) {
JOptionPane.showMessageDialog(null, "Please fill up blank fields!");
}
else {
String user = Username.getText();
char[] pass = Password.getPassword();
String pwd = String.copyValueOf(pass);
if(validate_login(user, pwd)) {
JOptionPane.showMessageDialog(null, "Login Successful!");
System.exit(0);
}
else {
JOptionPane.showMessageDialog(null, "Incorrect Username/Password");
}
}
}
private boolean validate_login (String username, String password) {
try {
Class.forName(".com.mysql.jdbc.Driver");
java.sql.Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306" + "user=root&password");
java.sql.PreparedStatement pst = con.prepareStatement("SELECT * FROM login WHERE username=? and password=?");
pst.setString(1, username);
pst.setString(2, password);
ResultSet RS = pst.executeQuery();
if(RS.next()) {
return true;
}
else {
return false;
}
}
catch (Exception e) {
e.printStackTrace();
return false;
}
}
答案 0 :(得分:0)
对validate_login()
进行更改。
Class.forName("com.mysql.jdbc.Driver");
java.sql.Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/databaseName", Username, Password);
您也可以使用不同类型的getConnection()方法,如下所示。
getConnection(String url)
getConnection(String url, Properties prop)
getConnection(String url, String user, String password)
答案 1 :(得分:0)
如果您的数据库配置正确,请检查以下内容,