【问题标题】:Comparing MySQL DB object with a String in Java将 MySQL DB 对象与 Java 中的字符串进行比较
【发布时间】:2015-01-29 19:45:45
【问题描述】:

我正在开发一个程序来管理数据库中的学生,并且我正在开发学生可以登录的部分,但由于某种原因,我永远无法让 if 语句为真。我认为这与我从数据库中获得的值有关,它是一个对象而不是字符串。我尝试将其转换为 String 但出现错误,无论如何我可以比较这两个值吗?我的代码在下面,你可以看看。我知道还有其他类似的问题,但我无法让他们的任何解决方案发挥作用。提前非常感谢。

public void actionPerformed(ActionEvent e)
    {
        //int i;
        //String name;

        if(e.getSource()==logInButton)
        {
            String name="";
            String password="";

            name=inputField.getText();
            password=inputField2.getText();




            try {
                connection = DriverManager.getConnection(connectionString, username, pass);
                PreparedStatement statement = (PreparedStatement) connection.prepareStatement("SELECT * FROM students");
                data = statement.executeQuery();
                while(data.next()){
                    //login = data.getObject("student_id").equals(name) && data.getObject("password").equals(password);
                    if(data.getObject("student_id").equals(name) && data.getObject("password").equals(password))
                    {
                        System.out.println("login = true");
                        logInPanel.setVisible(false);
                        postLogInPanel.setVisible(true);
                    }

                }
            } catch (SQLException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }

        }

【问题讨论】:

    标签: java mysql boolean


    【解决方案1】:

    而不是做:

    data.getObject("student_id");
    

    试试:

    data.getString("student_id");
    

    这是假设您的 student_id 字段是某种字符字段。此外,您可能想尝试使用比较

    .equalsIgnoreCase //instead of .equals for username unless it is case sensitive...
    

    【讨论】:

      【解决方案2】:

      首先你需要像这样查询数据库

       SELECT * FROM students where username='THE ENTER USERNAME' and password='Entered password'
      

      如果结果集的大小 == 1 则登录,否则无效凭据或用户不退出...

      对象的数据可以通过 data.getInt("student_id"); ..

      【讨论】:

      • 如果回答了您的问题,请将其标记为正确,以便其他人可以直接参考:)
      猜你喜欢
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      • 2019-06-16
      • 1970-01-01
      • 2017-02-20
      • 2010-10-06
      • 2012-08-31
      • 1970-01-01
      相关资源
      最近更新 更多