【发布时间】:2014-12-22 10:37:03
【问题描述】:
您愿意在以下方面帮助我吗:
创建了 3 个具有定义值的 ArrayList 和一个 ArrayList,它将接收数据库中选择的值。然后,我想将名为 database 的 ArrayList 的值与具有我创建的已定义值的 ArrayLists 进行比较。
给出错误,因为名为 NIVELACESSOOper 的 ArrayList 只有数据:“Operacional”和名为 NIVELACESSOOperFin 的 ArrayList 有 2 个数据是“Operacional”和“Financeiro”,当我尝试运行名为 NIVELACESSOOperFin 的 ArrayList 时,正在运行 NIVELACESSOOper,因为两者从数据“Operacional”开始......即使我使用 .containsAll 比较也出错了,因为它比较的是第一个数据,而不是整个 ArrayList,称为 NIVELACESSOOperFin。继续只比较第一个数据。
希望得到您的支持!!!
List NIVELACESSOOper; {
NIVELACESSOOper = new ArrayList();
NIVELACESSOOper.add("Operacional");
}
List NIVELACESSOOperFin; {
NIVELACESSOOperFin = new ArrayList();
NIVELACESSOOperFin.add("Operacional");
NIVELACESSOOperFin.add("Financeiro");
}
List NIVELACESSOAdmFinOper; {
NIVELACESSOAdmFinOper = new ArrayList();
NIVELACESSOAdmFinOper.add("Administrador");
NIVELACESSOAdmFinOper.add("Financeiro");
NIVELACESSOAdmFinOper.add("Operacional");
}
public void Logar() {
List result = new ArrayList();
String sql = "SELECT usuario_login, senha_login, nome_login, nivelAcesso FROM nivelAcessoSistema NATURAL JOIN login WHERE 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
result.add(nivelAcesso);
if (result.containsAll(NIVELACESSOOper)) {
JOptionPane.showMessageDialog(null, "Enter the screen Operacional");
}
else if(result.containsAll(NIVELACESSOOperFin)) {
JOptionPane.showMessageDialog(null, "Enter the screen Operacional - Financeiro");
}
else if (result.containsAll(NIVELACESSOAdmFinOper)) {
JOptionPane.showMessageDialog(null, "Enter the screen Operacional - Financeiro - Administrativo");
}
【问题讨论】:
-
它是否给出了这个结果:""仅输入屏幕操作"?你打印了:nivelAcesso 吗?
-
当我运行 NIVELACESSOOperFin 时正在运行 NIVELACESSOOper,因为两者都以数据“Operacional”开头。请参阅我的代码中的 ArrayLists。
标签: java select arraylist comparison