Olá pessoal,
Estou iniciando meus estudos em acesso a banco de dados em Java, porém ontem tive um problema na exibição do conteúdo trazido pelo banco de dados.
Criei uma Classe Contato, que contém os campos do contato.
A classe Connection Factory somente realiza a conexão com o banco de dados, acredito que esteja tudo certo com esta clase pois está inserindo normalmente no banco de dados.
A Classe consulta contato realiza a busca no banco de dados e devolve uma LinkedList
No método main apenas executo a Consulta e percorro o LinkedList para exibição dos dados, porém ao exibir os dados da LinkedList, ele mostra sempre os mesmos dados repetidos.
Quando exibo o contato retornado pelo ResultSet ele mostra todos os contatos que estão na tabela, acredito que o problema esteja no For Each que criei ou algo errado na Lista Ligada.
Gostaria da ajuda de vocês para resolução dessa ajuda.
[code]
public class consultaContato
{
LinkedList<contatos.Contato> listacontato = new LinkedList();
Contato contato = new Contato();
public LinkedList Consulta()
{
try
{
Connection conexao = new ConnectionFactory().getConnection();
contato = new Contato();
String sql=“select * from contatos”;
PreparedStatement stmt = conexao.prepareStatement(sql);
ResultSet rs = stmt.executeQuery();
while(rs.next())
{
System.out.println(rs.getString(1)+"\t"+rs.getString(2)+"\t"+rs.getString(3)+"\t"+rs.getString(4));
contato.setNome(rs.getString(“nome”));
contato.setEmail(rs.getString(“email”));
contato.setEndereco(rs.getString(“endereco”));
Calendar data = Calendar.getInstance();
data.setTime(rs.getDate(“dataNascimento”));
contato.setDataNascimento(data);
//contato.toString();
listacontato.add(contato);
}
stmt.close();
conexao.close();
}
catch(SQLException e)
{
System.out.println(“Erro ao efetuar consulta”);
}
return listacontato;
}
}[/code]
[code]public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args)
{
LinkedList<Contato> listacontato = new consultaContato().Consulta();
for (Contato contato : listacontato)
{
System.out.print("Nome:"+contato.getNome()+"\t");
System.out.print("Endereco:"+contato.getEndereco()+"\t");
System.out.print("Email:"+contato.getEmail()+"\t");
System.out.println("Data"+contato.getDataNascimento().getTimeInMillis());
}
}
}[/code]
Saída do programa
run:
1 testeinsercao contato@contato.com.br rua lateral
2 Bruno bffermino@gmail.com rua india
3 Bruno bffermino@gmail.com rua india
4 teste email@email.com.br rua sudao
Nome:teste Endereco:rua sudao Email:email@email.com.br Data1291773600000
Nome:teste Endereco:rua sudao Email:email@email.com.br Data1291773600000
Nome:teste Endereco:rua sudao Email:email@email.com.br Data1291773600000
Nome:teste Endereco:rua sudao Email:email@email.com.br Data1291773600000