用户名/密码未经过验证

时间:2015-08-14 06:11:58

标签: java swing

我试图通过制作一个简单的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;

    }
}

2 个答案:

答案 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)

如果您的数据库配置正确,请检查以下内容,

  1. 在执行查询之前检查是否需要加密/解密。
  2. 使用参数复制查询,尝试直接在数据库中执行并查看它产生的结果。