需要比较我的 SQL 查询中获得的值,但要比较的属性有 N 个结果,分别是:“Administrador”、“Financeiro”和“Operacional”。本来是要运行下面代码中的 IF,但我做了一些错误的比较并运行了 ELSE。
public void Logar(){
String sql = "Select usuario_login, senha_login, nome_login, nivelAcesso from nivelAcessoSistema natural join login group by nivelAcesso having usuario_login = ? and senha_login = ?";
try{
pst = con.prepareStatement(sql);
pst.setString(1, txtUsuario.getText()); //Campo do usuário
pst.setString(2, txtSenha.getText()); //Campo da senha
rs = pst.executeQuery();
if(rs.next()){ //Se existe registro no banco de dados com os dados informados na tela de login...
String nivelAcesso = rs.getString("nivelAcesso"); //Comparando valor de atríbuto "nivelAcesso" do banco de dados
if(nivelAcesso.equals("Administrador") && nivelAcesso.equals("Financeiro") && nivelAcesso.equals("Operacional")){
JOptionPane.showMessageDialog(null, "OK");
}
else{
JOptionPane.showMessageDialog(null, "Wrong");
}
我希望你能在这方面帮助我。
谢谢。
最佳答案
问题出在这里:
if(nivelAcesso.equals("Administrador") && nivelAcesso.equals("Financeiro")
&& nivelAcesso.equals("Operacional"))
nivelAcesso 不能同时等于所有这些值。将此行更改为:
if(nivelAcesso.equals("Administrador") || nivelAcesso.equals("Financeiro")
|| nivelAcesso.equals("Operacional"))
有关逻辑比较的更多信息,请阅读以下内容:
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/opsummary.html
关于java - 比较 SQL 查询的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27547809/