Dúvida com relação a List

Essa classe retorna todos os dados da tabela e adiciono esses dados em um Lista do tipo Empresa.

[code]
public List metodo() {
String sql = “select * from empresa”;
Empresa emp = new Empresa();
List dados = new ArrayList();
try {
ResultSet rs = stm.executeQuery(sql);
while (rs.next()) {
emp.setIdempresa(rs.getInt(“idempresa”));
emp.setRazaoSocial(rs.getString(“razaosocial”));
emp.setNomeFantasia(rs.getString(“nomefantasia”));
emp.setCnpj(rs.getInt(“cnpj”));
emp.setLogin(rs.getString(“login”));
emp.setSenha(rs.getString(“senha”));
dados.add(emp);
}

    } catch (SQLException e) {
        JOptionPane.showMessageDialog(null, "Exceção SQL! " + e);
    }
    return dados;
}[/code]

Só que quando mando ler esses dados, ela mostra todos possuindo a informacao do ultimo registro cadastrado na list.
Por exemplo:

Elemento1:
id:7
login:login

Elemento2:
id:7
login:login

Sendo que deveria ser assim:

Elemento1:
id:1
login:login

Elemento2:
id:2
login:login

Tem alguma coisa que fiz de errado?

    public List metodo() {
        String sql = "select * from empresa";
        List<Empresa> dados = new ArrayList<Empresa>();
        try {
            ResultSet rs = stm.executeQuery(sql);
            while (rs.next()) {
                Empresa emp = new Empresa(); // para cada registro deve ser criada um novo objeto da classe Empresa. 
                emp.setIdempresa(rs.getInt("idempresa"));
                emp.setRazaoSocial(rs.getString("razaosocial"));
                emp.setNomeFantasia(rs.getString("nomefantasia"));
                emp.setCnpj(rs.getInt("cnpj"));
                emp.setLogin(rs.getString("login"));
                emp.setSenha(rs.getString("senha"));
                dados.add(emp);
            }

        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, "Exceção SQL! " + e);
        }
        return dados;
    }

Obrigado :smiley:

Erro simples, mas é aquela coisa, quando se esta muito tempo sobre o programa é dificil vermos erros simples como esse ^^

Agora deu certo. Vlw