1

がテーブルusernameに既に存在するかどうかを確認したい。database

Java コード:

if (e.getSource() == jButton2)
{
  U = jTextField1.getText();
  if (jTextField1.getText().trim().equals(""))
  {
    JOptionPane.showMessageDialog(this, "Please Write Username !");
  } 
  else if (jPasswordField1.getText().equals(""))
  {
    JOptionPane.showMessageDialog(this, "Please Write Password !");
  } 
  else
  {
    try {
      String Driver = "com.mysql.jdbc.Driver"; 
      String URL = "jdbc:mysql://localhost:3306/LoginForm"; 
      Class.forName(Driver); 
      Connection Conn = DriverManager.getConnection(URL, "root", "12345");
      Statement S = Conn.createStatement();
      ResultSet RS = S.executeQuery(
          "SELECT * FROM login where username ='" + U + 
          "' and Password ='" + jPasswordField1.getText() + "'");

      while (RS.next()) {
        String Username = RS.getString("Username");
        String Password = RS.getString("Password");
        String Admin = RS.getString("Admin");

        if (Username.equals(U) & Password.equals(jPasswordField1.getText()) &
          Admin.equals("0")) 
        {

          JOptionPane.showMessageDialog(this, "Logged In Successfully !");
          this.dispose();
          NormalUsers NU = new NormalUsers();
          break;

        } 
        else if (Username.equals(U) & 
          Password.equals(jPasswordField1.getText()) & Admin.equals("1"))
        {

          JOptionPane.showMessageDialog(this, 
            "Logged In Successfully , Opening Administration Panel !");

          this.dispose();
          AdminPanel AP = new AdminPanel();
          break;
        }
        else 
        {
          JOptionPane.showMessageDialog(this, "Invalid Username Or Password!");
        }
      }
    } 
    catch (SQLException | ClassNotFoundException ex)
    {
    }
  }
}

問題はそれです:

  • に行がない場合database、次のエラー メッセージは表示されませんInvalid Username or Password
  • SQLクエリを手動で実行すると、SELECT * From Loginそこに行が存在することがわかりますが、 でフィルタリングしてpasswordいるため、while loop.

ユーザー名がMySQLテーブルに存在するかどうかを確認するには、Javaをどのように使用すればよいですか?

4

5 に答える 5

0

I'm new to Java but I think you should check your jPasswordField, if it is a JTextBox no problems but if it is a JPasswordField then getText() returns a byte[] not string and you need to convert the byte[] to string first.

于 2013-06-15T16:46:41.287 に答える