【问题标题】:if(rs.next()) always not working and go to elseif(rs.next()) 总是不工作,去 else
【发布时间】:2019-10-13 11:14:33
【问题描述】:

我在一个具有用户登录、管理员登录等的考试系统上工作。 当我检查输入的用户名(例如) 如果它已经在数据库中,它不会返回 并再次创建它

try{
  //  Class.forName("com.mysql.jdbc.Driver");
    Connection con = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/big_project_3","root","");
    //imporrrrrrrrrrrrrrrrrrrrrrrtant
    String selectquery = "select count(*)from uesrs where username='" + username + "'and password='" + password + "'";
    Statement stat=con.createStatement();
    System.out.println(selectquery);
    ResultSet rs=stat.executeQuery(selectquery);
    System.out.println(rs.next());
    if(rs.next()==true){
        infoMessage("Already registered ","Welcom");
    }
    else{
        String insertQuery = "insert into uesrs values(null,'" + username_new_student.getText() + "','" + password_new_student.getText() + "','" + First_name_new_student.getText()+"')";

        stat.executeUpdate(insertQuery);
        infoMessage("info is inserted ","Alert!!!!!");
        dispose();
        user_login ul=new user_login();
        ul.setLocationRelativeTo(null);
        ul.setVisible(true);
    }
}
catch (Exception ex) {
    System.out.println(ex);
}

【问题讨论】:

  • 看起来您的 SQL 中可能有错字。 from uesrs 也许应该说“来自用户”
  • System.out.println(rs.next()); - 你认为这是在做什么?
  • 我正在与他一起使用本教程youtube.com/…,它工作得很好!!!
  • 但在 rs.next 上调用 println 会推动事情向前发展。尝试将其注释掉。
  • 尝试选择 * 不选择计数 (*)。选择计数将始终返回包含 1 条记录的集合,即使没有匹配项(返回 1 条记录集,编号为 0)

标签: java mysql oop


【解决方案1】:

一旦你在System.out.println () 中调用rs.next(),它就会向前移动指针。然后,当您在 if 条件内调用 rs.next() 时,将不再显示任何结果。

try{
  //  Class.forName("com.mysql.jdbc.Driver");
    Connection con = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/big_project_3","root","");
    //imporrrrrrrrrrrrrrrrrrrrrrrtant
    String selectquery="select count(*)from uesrs where username='"+username+"'and password='"+password+"'";
    Statement stat=con.createStatement();
    System.out.println(selectquery);
    ResultSet rs=stat.executeQuery(selectquery);

    if(rs.next() ){
        infoMessage("Already registered ","Welcom");
    }
    else{
        String insertQuery="insert into uesrs values(null,'"+username_new_student.getText()+"','"+password_new_student.getText()+"','"+First_name_new_student.getText()+"')";

     stat.executeUpdate(insertQuery);
     infoMessage("info is inserted ","Alert!!!!!");
    dispose();
    user_login ul=new user_login();
    ul.setLocationRelativeTo(null);
    ul.setVisible(true);


    }

}

catch (Exception ex) {
    System.out.println(ex);
}

【讨论】:

  • 请看上面艾哈迈德·阿萨夫的评论,当他做了你在这里的事情时,它仍然没有用。这肯定是一个问题,但不是唯一的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-04
  • 2017-01-20
  • 1970-01-01
  • 1970-01-01
  • 2014-08-15
相关资源
最近更新 更多