首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql中的登录表单

mysql中的登录表单
EN

Stack Overflow用户
提问于 2018-07-29 18:50:14
回答 3查看 301关注 0票数 0

我正在使用Mysql netbeans。我已经创建了一个db表"userdetails_summertrainingproject“。在登录表单中,我有两个文件要填写,一个是"UUId_JTextField“,另一个是"Password1_JPasswordField”。我想比较一下,用户输入的密码值与用户输入的特定UUId的db中的密码值相同。UUid是独一无二的。

代码语言:javascript
复制
try{
                Class.forName("com.mysql.jdbc.Driver");
                Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql","root","");
                    String query = "SELECT password FROM userdetails_summertrainingproject WHERE UUId=?;";
                    PreparedStatement preparedStatement = conn.prepareStatement(query);
                    preparedStatement.setString(1,UUId_JTextField.getText());
                    ResultSet rs = preparedStatement.executeQuery();
                    char[] password1 = Password1_JPasswordField.getPassword();
                    String pass1 = new String(password1);
                    if(rs.getString(query)==pass1){
                        JOptionPane.showMessageDialog(null, "Logged in successfully");
                    }
            }

            catch(Exception e){
                System.out.println("Exception in Login:"+e.getMessage());
            }

以上是我正在使用的代码。例外是:

Login中的异常:列“从userdetails_summertrainingproject选择密码UUId=?;”未找到。

EN

回答 3

Stack Overflow用户

发布于 2018-07-29 19:28:27

试试这段代码,你错过了rs.next()

代码语言:javascript
复制
    try {
        Class.forName("com.mysql.jdbc.Driver");
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3307/mysql", "root", "");
        String query = "SELECT password FROM userdetails_summertrainingproject WHERE UUId=?;";
        PreparedStatement preparedStatement = conn.prepareStatement(query);
        preparedStatement.setString(1, UUId_JTextField.getText());
        ResultSet rs = preparedStatement.executeQuery();
        char[] password1 = Password1_JPasswordField.getPassword();
        String pass1 = Arrays.toString(password1);
        rs.next();
        if (rs.getString("password").equals(pass1)) {
            JOptionPane.showMessageDialog(null, "Logged in successfully");
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

我认为使用另一种方法来获取连接字符串是比较容易的。否则,您必须一次又一次地编写下面的代码。

代码语言:javascript
复制
Class.forName("com.mysql.jdbc.Driver");
    Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3307/mysql", "root", ""); 

编辑:

代码语言:javascript
复制
public static void main(String[] args) {
    try {
        Class.forName("com.mysql.jdbc.Driver");
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql", "root", "");
        String query = "SELECT UUId FROM userdetails_summertrainingproject;";
        PreparedStatement preparedStatement = conn.prepareStatement(query);
        ResultSet rs = preparedStatement.executeQuery();
        rs.next();
        String UUId = rs.getString("UUId");
        System.out.println("UUId " + UUId);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

创建一个类并添加以下代码。然后检查这段代码是否有效。请确保端口,数据库名称,用户和密码是正确的。

如果这是给com.mysql.jdbc.CommunicationsException: Communications link failure。很可能您的端口不正确。

我正在使用这两个图书馆。

票数 0
EN

Stack Overflow用户

发布于 2018-07-31 15:32:23

代码语言:javascript
复制
try{
      Class.forName("com.mysql.jdbc.Driver");
      Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql","root","");
      String query="SELECT password FROM tryingtable WHERE name=?;";
      PreparedStatement prepstmt=conn.prepareStatement(query);
      prepstmt.setString(1,jtf.getText());
      ResultSet rs=prepstmt.executeQuery();
      rs.next();
      String result=rs.getString("password");;
      char[] pass = jpf.getPassword();
      String password1= new String(pass);
      if(result.equals(password1))
      JOptionPane.showMessageDialog(null, "go!!");
       else
       JOptionPane.showMessageDialog(null, "no!!");

    }

      catch(Exception e){
      System.out.println("Exception:"+e.getMessage());
      e.getStackTrace();
      }
票数 0
EN

Stack Overflow用户

发布于 2018-07-31 15:50:35

当您要将密码字段与文本字段进行比较时,请使用

代码语言:javascript
复制
char[] pass_char = passwordField.getPassword();
String pass_string = new String(pass_char);

以上代码将以字符串形式给出密码字段值,然后

代码语言:javascript
复制
if(pass_string.equals(textfield))
JOptionPane.showMessageDialog("Password match");
else
JOptionPane.showMessageDialog("Password did not match");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51583490

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档