【问题标题】:if-else loop condition is not working using java swing?if-else 循环条件在使用 java swing 时不起作用?
【发布时间】:2018-05-05 22:35:33
【问题描述】:

我正在尝试获取用户名和密码的数据库记录并使用 if-else 语句进行验证。最后的 else 语句不显示消息对话框。我被这个困住了,建议我一个解决方案并说出我在哪里做错了。

我的完整代码

String s1 = id.getText();
   String s2 = new String(pass.getPassword());

   try
   {
       Class.forName("org.apache.hive.jdbc.HiveDriver");
       Connection con = DriverManager.getConnection("jdbc:hive2://localhost:10000/twitter_db","arunachalam","");

       String sql = "select userid, password from user_reg where userid='"+s1+"'";
       PreparedStatement ps = con.prepareStatement(sql);
       ResultSet rs = ps.executeQuery();
       while(rs.next())
       {
           if((rs.getString("userid").equals(s1)) && (rs.getString("password").equals(s2)))
           {
               dispose();
               showMessageDialog(null,"Login Successfully");
               new UserPage().setVisible(true);
           }
           else if((rs.getString("userid").equals(s1)) && (!rs.getString("password").equals(s2)))
           {
               showMessageDialog(null,"Incorrect Password");

           }
           else
           {
               showMessageDialog(null,"Invalid User");

           }
       }
   }   
   catch(Exception e)
   {
       showMessageDialog(null, e);
   }

【问题讨论】:

  • Final else 语句不显示消息对话框 - 可以输入ifif else 之一,因此不输入最终的else
  • 你能把完整的代码贴出来吗?它很容易追踪..
  • 出于好奇,ng-if-else 是什么?
  • 我等一下。
  • else if 的意义何在?另请注意,您应该从不像您所做的那样使用 + 创建 sql 查询

标签: java conditional


【解决方案1】:

您为用户 ID 和密码检查了两次相同的条件,因此每次它首先检查 else if 语句并且它不满足 final else if。 观察你下面的源代码。

 else if((rs.getString("userid").equals(s1)) && (!rs.getString("password").equals(s2)))
           {
               showMessageDialog(null,"Incorrect Password");

           }
           else if((rs.getString("userid").equals(s1)) && (!rs.getString("password").equals(s2)))
           {
               showMessageDialog(null,"Incorrect Password");

           }

您可能正在尝试我更新的以下代码

// check for user id not equal
else if((!rs.getString("userid").equals(s1)) && (rs.getString("password").equals(s2)))
           {
               showMessageDialog(null,"Incorrect User Id");

           }
           else if((rs.getString("userid").equals(s1)) && (!rs.getString("password").equals(s2)))
           {
               showMessageDialog(null,"Incorrect Password");

           }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-19
    • 2018-10-16
    • 2021-11-24
    • 2021-11-13
    • 2014-03-21
    相关资源
    最近更新 更多