olá a todos estou estudando pela apostila da caelum e me deparei com uma dúvida a qual não estou conseguindo resolver.Bem o método de inserção no BD esta funcionando perfeitamente mas o método que busca esses registros não esta me retornando nada e o pior roda normal sem erro. Vou postar o código e gostaria da ajuda de outros olhos porque não consigo encontrar o erro.
Classe de Conexão com mysql
package com.br.fagner.jdbc;
import java.sql.*;
public class ConnectionFactory {
public Connection getConnection(){
//JOptionPane.showMessageDialog(null,"Conectado ao banco");
//System.out.println("Conectado ao banco");
try{
return DriverManager.getConnection("jdbc:mysql://localhost/fj21","root","");
}catch(SQLException e){
throw new RuntimeException(" não foi possível abrir conexão " + e);
}
}
}
Classe BeansContato
package br.com.fagner.jdbc.modelo;
import java.util.*;
public class BeansContato {
private long id;
private String nome;
private String email;
private String endereco;
private Calendar dataNascimento;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public Calendar getDataNascimento() {
return dataNascimento;
}
public void setDataNascimento(Calendar dataNascimento) {
this.dataNascimento = dataNascimento;
}
}
Classe DaoContato
package br.com.fagner.jdbc.DaoContato;
import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import br.com.fagner.jdbc.modelo.BeansContato;
import com.br.fagner.jdbc.ConnectionFactory;
public class DaoContato {
Connection conexao = new ConnectionFactory().getConnection();
public void adiciona(BeansContato contato){
String sql = "insert into contatos(nome,email,endereco,dataNascimento) values(?,?,?,?)";
try{
PreparedStatement stm = conexao.prepareStatement(sql);
stm.setString(1, contato.getNome());
stm.setString(2, contato.getEmail());
stm.setString(3, contato.getEndereco());
stm.setDate(4, new Date(contato.getDataNascimento().getTimeInMillis()));
stm.execute();
stm.close();
}catch(SQLException e){
throw new RuntimeException("Não foi possível adicionar o contato " + e);
}
}
public List<BeansContato> getLista(){
try{
List<BeansContato> contatos = new ArrayList<BeansContato>();
PreparedStatement stmt = conexao.prepareStatement("select * from contatos");
ResultSet rs = stmt.executeQuery();
while(rs.next()){
BeansContato c = new BeansContato();
c.setId(rs.getLong("id"));
c.setNome(rs.getString("nome"));
c.setEmail(rs.getString("email"));
c.setEndereco(rs.getString("endereco"));
Calendar data = Calendar.getInstance();
data.setTime(rs.getDate("dataNascimento"));
c.setDataNascimento(data);
contatos.add(c);
}
rs.close();
stmt.close();
return contatos;
}catch(SQLException e){
throw new RuntimeException(e);
}
}
}
Classe TestarLista
package br.com.fagner.jdbc.teste;
import br.com.fagner.jdbc.DaoContato.DaoContato;
import br.com.fagner.jdbc.modelo.BeansContato;
import java.util.List;
public class TestarLista {
public static void main(String[] args){
// Connection conexao = new ConnectionFactory().getConnection();
DaoContato dao = new DaoContato();
List<BeansContato> cont = dao.getLista();
for(BeansContato c : cont){
System.out.println("Nome: " + c.getNome());
System.out.println("email: " + c.getEmail());
System.out.println("endereço: " + c.getEndereco());
System.out.println("Data de nascimento: " + c.getDataNascimento().getTime());
}
}
}