がテーブル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をどのように使用すればよいですか?