Java 在SQL数据库中进行选择后使用IF条件

Java 在SQL数据库中进行选择后使用IF条件,java,sql,if-statement,login,Java,Sql,If Statement,Login,我的系统上有一个登录表,在用户登录后,我想比较用户的访问级别,看看他可以访问系统的哪个模块 用户表有: 身份证 名字 使用者 密码 访问级别表有: 身份证 使用者 对系统的访问级别 一个用户可以有N个访问级别(“运营”、“财务”、“管理员”) 我使用了以下代码: public void Logar(){ String sql = "Select * from login where usuario_login = ? and senha_login = ?";

我的系统上有一个登录表,在用户登录后,我想比较用户的访问级别,看看他可以访问系统的哪个模块

用户表有:

  • 身份证
  • 名字
  • 使用者
  • 密码
访问级别表有:

  • 身份证
  • 使用者
  • 对系统的访问级别

    一个用户可以有N个访问级别(“运营”、“财务”、“管理员”)

我使用了以下代码:

public void Logar(){  

    String sql = "Select * from login where usuario_login = ? and senha_login = ?";  

    try{  

        pst = con.prepareStatement(sql);   

        pst.setString(1, txtUsuario.getText());   
        pst.setString(2, txtSenha.getText());   

        rs = pst.executeQuery();   

        if(rs.next()){  

            FRMPrincipal frm = new FRMPrincipal();  
            frm.setVisible(true);  

            dispose(); 
        }  

        else{  

            JOptionPane.showMessageDialog(null, "Usuário ou senha incorretos!");  
        }  
    }  

    catch(SQLException error){  

        JOptionPane.showMessageDialog(null, error);  
    }  
}

我希望实现:当用户记录我以捕获用户ID并在“访问级别”表上进行选择以查看该用户的“系统访问级别”时。然后,我将根据筛选的访问级别转到系统主页。

这只能在一次查询中使用联接完成。您的SQL查询变成:

Select l.*, a.level from login l
left join access_level a on l.id = a.user
where l.usuario_login = ? and l.senha_login = ?
我假设访问级别表名为
access\u level

如果一个用户可以有多个“访问级别”,那么使用第二个查询来获取访问列表就更简单了:

select a.level from access_level where user = ?

我将如何比较该查询所筹集的金额?示例:如果用户对系统具有级别访问权限=操作和财务,则他可以访问两个系统模块!我需要捕获用户对系统的访问级别,然后使用IF条件实现。啊,是的,在这种情况下,确实需要两个查询。好的,我如何将select的结果与IF条件进行比较?我不确定我是否理解您的问题。只需创建一个用户访问授权的集合,并使用类似的方法测试当前模块访问权限。通过比较ResultSet的值来解决问题。在查询之后我做了:
stringlevelacess=rs.getString(“levelAcess”);if(levelAcess.equals(“管理员”){//执行管理员表单的代码}else if(levelAcess.equals(“财务”)&&levelAcess.equals(“管理员”){//执行管理员和财务表单的代码}