我使用 GUI 用户登录来检查 MYSQL 中的用户表的 Java 应用程序。
我将一条记录硬编码到 MySQL 数据库中,用户名和密码设置为 admin。
我正在尝试回调它并在我的 GUI 中检查它,但我遇到了困难。我可以连接到数据库并很好地存储数据库中的变量,但是当我去检查它们时,它显示变量为空。
当我通过代码进行调试时,我可以看到在 doGetAdminUsers() 方法中,变量在 while 循环中填充了正确的数据。但是当我单击按钮检查用户输入的登录名是否与他们相同的变量时即使它们未在本地声明,也显示为 null。
有任何想法吗?
下面的代码
//此方法从表的位置 1 查询数据库的名称和密码字段。它已经被硬编码
public void doGetAdminUsers() {
String queryName = "SELECT name FROM users WHERE user_id = 1";
String queryPassword = "SELECT pass_word FROM users WHERE user_id = 1";
try {
//connecting to DB
Statement st = conn.createStatement();
//running the query and storying results
ResultSet rs1 = st.executeQuery(queryName);
while (rs1.next()) {
adminNameFromDB = rs1.getString(1);
}
ResultSet rs2 = st.executeQuery(queryPassword);
while (rs2.next()) {
adminPasswordFromDb = rs2.getString(1);
}
} catch (SQLException ex) {
System.err.println(ex.getMessage());
}
}
//这是用户在指定的GUI字段中输入用户名和密码后我的启动按钮的方法
private void LoginBtnActionPerformed(java.awt.event.ActionEvent evt) {
name = userNameTf.getText();
password = passwordTf.getText();
if (name.equals(adminNameFromDB) && (password.equals(adminPasswordFromDb))) {
myHomeGUI.setVisible(true);
} else
{
JOptionPane.showMessageDialog(null, "Incorrect login name or password");
}
}
//doGetAdminUsers() 方法在启动应用程序的主类中调用