java - 登录后如何向其他类(class)显示用户信息?

标签 java authentication jdbc

我在如何连接两个类(class)方面遇到问题。我想要发生的是,当用户登录时,GradingSystem 类将运行并根据我的 MS ACCESS 数据库自动显示用户的信息。不知何故,我不知道如何调用或连接 Login 类到其他类。

登录类

private class ButtonHandler implements ActionListener{
  @Override
  public void actionPerformed(ActionEvent e) {
    DatabaseDriver driver = new DatabaseDriver();
    Object source = e.getSource();

    if (source == btnLogin) {
      try {
        String username = txtUserName.getText();
        String password = String.valueOf(txtPassword.getPassword());
        String query =
               "Select username,password from [useraccount] where [username]='"
               + username + "' and [password]='" + password+"'";
        driver.selectQuery(query);
        ResultSet rsLogin = driver.rs;
        if (rsLogin.next()) {
          String logo = "img/seal_TIP.png";
          java.net.URL addURL = getClass().getClassLoader().getResource(logo);
          ImageIcon image1 = new ImageIcon(addURL);
          JOptionPane.showMessageDialog(null, "Welcome to your TIP account.",
                     "Login Success", JOptionPane.INFORMATION_MESSAGE, image1);
          dispose();
          new GradingSystem().run();
        } else {
          JOptionPane.showMessageDialog(null, "Incorrect Username or Password.",
                     "User Not Found!", JOptionPane.INFORMATION_MESSAGE);
        }
      } catch (SQLException ex) {
    }

评分系统类

DatabaseDriver driver = new DatabaseDriver();
 
 String query = "Select lastName from [useraccount] where [username]='"
                 +login.username+"' and [password]='"+login.password+"'";
 driver.selectQuery(query);
 ResultSet rsGradingSystem = driver.rs;
   try {
     if (rsGradingSystem.next()) {
       JLabel studName= new JLabel("Name: ");
       studName.setBounds(15,60,150,20);
       add(studName);
     }
   } catch (SQLException ex) {
 }

最佳答案

你可以在你的登录类中使用一些静态字段,登录后填写它们,然后在GradingSystem类中你可以使用它们。

类似于:

public static string UserName;
public static string Password;

并在评分系统中使用:

DatabaseDriver driver = new DatabaseDriver();

 String query = "Select lastName from [useraccount] where [username]='"+Login.UserName+"' and [password]='"+Login.Password+"'";
 driver.selectQuery(query);
 ResultSet rsGradingSystem = driver.rs;
    try {
        if (rsGradingSystem.next()) {
           JLabel studName= new JLabel("Name: ");
           studName.setBounds(15,60,150,20);
           add(studName);
        }
    } catch (SQLException ex) {

    }

登录后不要忘记填写它们。

关于java - 登录后如何向其他类(class)显示用户信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19344612/

相关文章:

java - 无法找到 JAX-WS 的 Spring 命名空间

用于多种不同类型密码加密的 Java 库

java - ImageView不根据屏幕尺寸进行调整

java - hadoop 3.1.3的线程 “main” org.apache.hadoop.ipc.RemoteException(java.io.IOException)中的异常

authentication - 谷歌阅读器身份验证问题

asp.net-mvc-2 - MVC2 C# 根据 ID 限制对 View 的访问

java - 我应该如何将 try-with-resources 与 JDBC 结合使用?

java - 如何找到哪个应用程序创建了每个 c3p0 连接池?

c# - ASP.NET Core 2.0+ 中 JwtBearerOptions.SaveToken 属性的用途是什么?

java - SQLException : Operation not allowed after ResultSet closed error