【问题标题】:How to verify that the code in text field and password exist in my database in Netbeans如何验证文本字段中的代码和密码是否存在于我的 Netbeans 数据库中
【发布时间】:2017-12-31 02:32:18
【问题描述】:

我想做一个项目页面。我的图形界面没问题。但是,在连接我的数据库并编写此代码以验证我的代码和密码是否存在于我的数据库中之后,即使代码存在于数据库中,我总是会收到 my (else) 的消息。

private void ok1ActionPerformed(java.awt.event.ActionEvent evt) {                                    
    try {
        conn=Test.ConnectDB();
        String Sql="select * from login WHERE 'code' =?and 'motdepasse' =?";
        ps=conn.prepareStatement(Sql);
        ps.setString(2,code1.getText());
        ps.setString(1,passe1.getText());
        ResultSet  rs=ps.executeQuery();
        if(rs.next()){
            con_ret s=new con_ret();
            s.setVisible(true);
            JOptionPane.showMessageDialog(null,"welcome");
        } else { 
            JOptionPane.showMessageDialog(null,"invalid user or password");
        }
    } catch (SQLException ex) {
        /*Logger.getLogger(login.class.getName()).log(Level.SEVERE, null, ex);*/
        JOptionPane.showMessageDialog(null,ex);
    }
}

【问题讨论】:

  • code1不属于参数1passe1不属于参数2吗?
  • 哦,谢谢你,我认为这是关于他们在我的数据库中重新排序,但是当我改变它时它可以工作
  • 不,这是关于它们在查询中出现的顺序
  • 打印以控制您为 code1.getText 和 passe1.getText 获得的值。确认这是您期望的答案

标签: java mysql netbeans


【解决方案1】:

我认为最好取消引用列名,即:

select * from login WHERE code =? and motdepasse =?

引号表示字符串文字。如果您好奇,可以将codemotdepasse 作为代码和密码传递,以尝试它们是否匹配。

编辑:

我还注意到您混淆了参数索引。参数设置应为:

ps.setString(1,code1.getText());
ps.setString(2,passe1.getText());

【讨论】:

  • 我删除了引用但我仍然有同样的问题
  • 您可以引用但使用正确的引号。不是单撇号而是反引号
猜你喜欢
  • 2016-01-16
  • 2021-04-22
  • 2012-06-20
  • 1970-01-01
  • 1970-01-01
  • 2020-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多