将MySQL数据库对象与Java中的字符串进行比较

问题描述:

我正在开发一个程序来管理数据库中的学生,并且我正在研究学生可以登录的部分,但出于某种原因,我永远无法获得if声明是真实的。我认为这与我从数据库获取的值是一个对象而不是字符串有关。我试过把它转换为字符串,但我得到一个错误,是否有反正我可以比较这两个值?我的代码在下面,所以你可以看看。我知道还有其他类似的问题,但我无法获得任何解决方案。非常感谢提前。将MySQL数据库对象与Java中的字符串进行比较

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(); 
      } 

     } 

而不是做的:

data.getObject("student_id"); 

尝试:

data.getString("student_id"); 

这是假设你的student_id数据字段是某种焦炭领域。你可能也想尝试使用

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

非常感谢! – user3082473 2014-12-01 19:32:26

+0

欢迎您的光临,我可以帮助您! – brso05 2014-12-01 19:56:14

首先你需要查询像

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

数据库如果结果的大小设置== 1,则其他登录凭证无效或用户的比较没有按'退出...

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

+0

非常感谢! – user3082473 2014-12-01 19:32:50

+0

如果它回答您的问题,请将其标记为正确,以便其他人可以直接引用:) – 2014-12-01 19:34:52