[RESOLVIDO] Salvo os arquivos diferentes mas na hora de verificar estão iguais!?

Olá!

Estou com um probleminha bem chato novamente, que, eu crio o usuário, com as permissões. Só que logo após todos tem a mesma permissão.
Código exemplo:

Imprime isto:
(AQUI PEGA DO MYSQL)
Usuário 1 com as perms R
---------------------------
Usuário 2 com as perms log.fab
---------------------------
(AQUI SÓ IMPRIME OS DADOS QUE FORAM SALVOS ACIMA)
Usuário 1
Permissão log.fab
---------------------------
Usuário 2
Permissão log.fab

A classe Usuário não possui nenhuma variável static.
Alguém consegue ajudar? Obrigado!

Poste o código e não uma imagem dele.

O código em si é este, mas não acho q vá ajudar em algo…
Pois o programa está pegando os dados corretamente do MySQL, só não está salvando corretamente. Está salvando sempre a última permissão salva do último usuário, como se estivesse static as permissões do usuário… Mas não está

//Carregar usuários
            ps = con.prepareStatement("SELECT * FROM Usuarios");
            ps.executeQuery();
            rs = ps.getResultSet();
            if (rs != null) {
                while (rs.next()) {
                    int ID = rs.getInt("userID");
                    String nome = rs.getString("Nome");
                    String senha = rs.getString("Senha");
                    perms.clear();
                    if (rs.getString("Permissoes") != null) {
                        String s = rs.getString("Permissoes");
                        if (s.contains(";")) {
                            for (String P : s.split(";")) {
                                perms.add(gerPermissoes.getPerm(P));
                            }
                        } else if (!s.equals("")) {
                            perms.add(gerPermissoes.getPerm(s));
                        }
                    }
                    Usuario u = new Usuario(ID, nome, senha, perms);
                    String perm = "";
                    for (Permissao p : u.getPerms()) {
                        perm = perm + " " + p.getNomeDB();
                    }
                    System.out.println("Usuário " + u.getNome() + " com as perms " + perm);
                    System.out.println("---------------------------");
                    gerUsuarios.add(u);
                }
            }
        } catch (SQLException ex) {
            System.out.println("Erro ao se conectar o MySQL: " + ex.getMessage());
        } finally {
            sql.closeConnection(con, ps, rs);
        }

        new Estatisticas();
        PDV = new principalPDV();

        for (Usuario u : gerUsuarios.getAllUsers()) {
            System.out.println("Usuário " + u.getNome());
            for (Permissao p : u.getPerms()) {
                System.out.println("Permissão " + p.getNomeDB());
            }
            System.out.println("---------------------------");
        }

Rafael, poste a classe Permissão, por favor.

E se possivel, sempre utilize CleanCode, seu código fica mais legível.
CFTV - CleanCode

1 curtida

Então posta o código que abre o arquivo, escreve nele e salva.

1 curtida

Peço desculpas pelo jeito que postei o código, segundo post que faço rs rs.
Agradeço pela ajuda, tanto a sua quanto a do @darlan_machado.

O erro estava na classe de gerenciamento das permissões, em que a ArrayList que salvava as permissões estava static. Eu não tinha visto isto antes por causa que estava focando procurar o erro na parte onde estava salvando os usuários, que postei o código, e na classe Permissão, onde salva a permissão em si, seus dados e nome.
Enfim. Removi o static e coloquei na Main um gerUsuarios gerUsuarios = new gerUsuarios(); e resolveu o problema.

Agradeço a todos, tenham um ótimo dia!

Tranquilo, é apenas uma dica, até mesmo pra você, caso revise o código um tempo depois, pode perder tempo de manutenção tentando entender um método

*Marque o tópico como resolvido