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(“管理员”){//执行管理员和财务表单的代码}