2013-09-22 2 views
0

일치하는 사용자 이름과 암호를 데이터베이스에서 검사하는 JDBC를 설정하려고 시도하고 사용자와 일치하는 경우 로그인 단추를 누를 때 액세스 권한이 부여됩니다. 내 현재 코드는 여기에 있지만 정확한 정보를 얻기 위해 데이터베이스를 점검하지 않는 것처럼 보이는 프로그램을 시작할 때 무엇이 ​​빠져 있는지 확신 할 수 없습니다.올바른 사용자 이름과 암호를 확인하기 위해 JDBC 설정

답변

0

checkLogin 방법에 return 유형이 누락되었습니다. 사용자의 유효성을 확인하기 위해 boolean 값을 반환 할 수 있습니다. 또한 일부 로깅/sysout을 추가하여 코드에서 어떤 일이 일어나는지 확인하십시오.

업데이트 당신의 방법과 같이

  try { 
       if(usernamecheck.checkLogin(jtfUsername.getText(), jtfPassword.getText())) { 
        System.out.println("User is validated"); 
       } else { 
       return; 
       } 
      } catch (SQLException se) { 
      } 
+0

'if (orPass.equals (password))'문에 해당 내용을 쓰겠습니까? – Hayde

+0

@Hayde check updated answer .... 컴파일 된 적이 없으므로 오류가 있으면 제거하십시오. –

+0

나는 오류를 수정하지만 여전히 작동하지 않는다./나는 데이터베이스에 사용자 이름 테스트와 비밀번호가 1234 일 때 그것을 넣을 수있다. 그러나 무작위로 정보를 넣었을 때도 여전히 나를 허용한다. 게시물 – Hayde

0

checkLogin 방법 반환 부울 ​​유형을 확인하고 if (orPass.equals(password)) { 블록 내부에 true를 돌려로

// launch the application 
    public static boolean checkLogin(String username, String password) 
      throws SQLException { 
     System.out.print("dfdF"); 

     Connection connection = null; // manages connection 
     PreparedStatement pt = null; // manages prepared statement 

     // connect to database usernames and query database 
     try { 

      // establish connection to database 
      Class.forName("com.mysql.jdbc.Driver").newInstance(); 
      Connection con = DriverManager.getConnection(DATABASE_URL, "root", "root"); 

      // query database 
      pt = con.prepareStatement("select userName,password from test.person where userName=?"); 

      // process query results 
      pt.setString(1, username); 
      ResultSet rs = pt.executeQuery(); 
      String orgUname = "", orPass = ""; 
      while (rs.next()) { 
       orgUname = rs.getString("userName"); 
       orPass = rs.getString("password"); 
      } //end while 
      if (orPass.equals(password)) { 
       //do something 
       return true; 
       rs.close(); 
      } else { 
       //do something 
      } 
     }//end try 
     catch (Exception e) { 
     } //end catch 
     return false; 
    } //end main 

그리고 사용자 확인을 업데이트합니다. 메소드에 true가 액세스 할 수있는 경우 true를 확인합니다.

관련 문제