【问题标题】:How do I get the user role from the database after it checks for its username and password检查用户名和密码后如何从数据库中获取用户角色
【发布时间】:2019-04-07 00:29:41
【问题描述】:

我有一个基本的登录功能,如果用户在输入用户名和密码后单击登录按钮,它会从数据库中获取并检查用户名和密码是否正确并将其显示给管理员 jframe,但我想要根据用户类型显示jframe。例如。管理员,获取管理员 Jframe,客户获取客户 jframe。在这种情况下,Admin = 1,customer = 2 等等,那么如何从数据库中检查 userRole 并显示它们各自的 jframe?

我尝试查找有关如何执行此操作的教程,但我发现的只是基本教程,不涉及获取 userType/Role

public boolean isLogin(String user, String pass) throws Exception{
        PreparedStatement pr = null;
        ResultSet rs = null;

        String sql = "SELECT * FROM Login where username = ? and password = ?";

        try{
            pr = this.connection.prepareStatement(sql);
            pr.setString(1, user);
            pr.setString(2, pass);

            rs = pr.executeQuery();

             if(rs.next()){
             return true;   
            }
            return false;
        }
        catch(SQLException ex){
            return false;
        }

        finally{
                pr.close();
                rs.close();
        }

    }

登录控制器

@FXML
    public void Login (ActionEvent event){
        try{

            if(this.loginModel.isLogin(this.username.getText(), this.password.getText())){


                Stage stage = (Stage) this.login.getScene().getWindow();
                stage.close();

                adminLogin();

            }
             else{
                this.loginStatus.setText("The username or password entered is incorrect. Please check and try again.");
            }
        }           
        catch(Exception localException){

        }
    }

【问题讨论】:

  • 我不知道你的数据库方案,但你正在从Login 表中获取所有(SELECT *)数据。如果role 在该表中,只需执行rs.getString('role'); 之类的操作

标签: java sqlite javafx


【解决方案1】:

我在应用中处理用户授权的方式:

  • 在数据库中为用户创建表,名称授权类型 int()
  • 为用户设置授权值,从 0(或 1)开始,为每个用户设置 +1 您要添加的授权(分析器、管理员等)。
  • 在登录时获得验证数据(检查是否给定名称+密码 是正确的)也得到它的授权。
  • 在本地存储您当前的用户。
  • 根据验证,您可以重定向到相应的阶段(窗口)或 只需检查用户是否有必要的授权,即可在您的应用中使用这些“选项”。
  • 在您的用户管理窗口中,当编辑或添加新用户时,设置 选择授权的选项。

希望对你有帮助!

【讨论】:

  • @User2382 您在哪一部分遇到了困难?这个想法是在 User 对象(以及数据库中的用户表)中添加另一个属性,并通过检查 if(user.getAuthorization() == 1){ ... } else { ... } 您可以选择在哪个阶段进行重定向。您可以根据自己的应用选择如何构建代码。
  • 好吧,我会说全部,因为我在编程方面真的很弱,但我会看看我能做什么
猜你喜欢
  • 1970-01-01
  • 2010-12-12
  • 1970-01-01
  • 2012-08-29
  • 2019-02-16
  • 1970-01-01
  • 1970-01-01
  • 2014-09-23
  • 2017-08-31
相关资源
最近更新 更多