2016-04-16 103 views
0

在MySQL中,有一個名爲admin的表,其中有3列,分別是adminID,名稱和密碼。在MySQL中檢索名稱

我想比較用戶輸入的id和name與MySQL中的數據。如果ID和密碼匹配,顯示名稱。但是,名稱顯示的值始終爲空。

public boolean checklogin(String id, String Pass)throws Exception 
      { 
       boolean check=false; 
       String name = null; // because assigning null here ? 
       String sql = "SELECT * FROM admin WHERE adminID =? and password= ?" ; 
       DatabaseConnection db = new DatabaseConnection(); 
       Connection conn =db.getConnection(); 
       PreparedStatement ps = conn.prepareStatement(sql); 
       ps.setString(1, id); 
       ps.setString(2, Pass); 
       ResultSet rs = ps.executeQuery(); 
       admin lg=new admin(); 
       lg.setID(id); 
       lg.setPassword(Pass); 
       lg.setName(name); 

       if(rs.next()) 
       { 
        check =true; 
        System.out.println(lg.getName()); 
        ps.close(); 
        rs.close(); 
        conn.close(); 
        return check;  
       } 
      } 

我的代碼有什麼問題?任何幫助將不勝感激。

+0

是什麼讓您認爲'name'不應該爲空?我的意思是它在註釋行中爲空,並且在此之後從未分配,所以.. –

+0

@RC。什麼是正確的方式來檢索名稱從MySQL到'name'變量? –

+0

'rs.getString(「name」)'probably,see https://docs.oracle.com/javase/8/docs/api/java/sql/ResultSet.html and https://docs.oracle.com/ javase/tutorial/jdbc/basics/ –

回答

1

這是因爲您不顯示數據庫中的名稱,而是分配的名稱爲空。您需要將System.out.println(lg.getName());替換爲System.out.println(rs.getString("name"));

+0

非常感謝... –