String name= uname.getText();
String password=new String (PassW.getPassword());
try {
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/attms?autoReconnect=true&useSSL=false","root","");
Statement stm= con.createStatement();
String q="SELECT * FROM admin;";
ResultSet rs= stm.executeQuery(q);
while (rs.next())
{
String user= rs.getString("Username");
String pass= rs.getString("Password");
if(name.equals(user)&& password.equals(pass)) {
JOptionPane.showMessageDialog(null, "Welcome " +name ,"Login Successfull", JOptionPane.PLAIN_MESSAGE);
new AdminFrame().setVisible(true);
this.dispose();
} else {
JOptionPane.showMessageDialog(this,"Invalid Username&Password","",JOptionPane.ERROR_MESSAGE);
}
}
我想将给定的用户名与数据库中存储的用户名数据逐一进行比较,如果条件为真,则允许进入此代码中的另一帧。我使用if语句,它只检查一个数据
1条答案
按热度按时间carvr3hs1#
您
if-else
应该在循环之外当前如果第一个用户不匹配,您将认为根本没有匹配1.如果找到匹配项,则使用布尔变量
1.在循环中,检查是否匹配,如果找到,则设置为true并中断循环,否则继续循环
1.检查循环外变量
此外,如果您从数据库中按用户名获取一个用户,然后检查密码是否匹配,则效果会更好,无需遍历所有用户。