Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Salve Galera beleza? Sou iniciante em Java e estou tendo um erro que acho básico, porem não consigo resolver.
Vamos lá. Eu tenho o seguinte cenário:
Fisica
import java.sql.Date;
// <editor-fold defaultstate="collapsed" desc=" UML Marker ">
// #[regen=yes,id=DCE.C785799F-A6A5-9B6D-AAE1-F2B449197AED]
// </editor-fold>
public class Fisica extends Pessoa {
// <editor-fold defaultstate="collapsed" desc=" UML Marker ">
// #[regen=yes,id=DCE.46440E69-6BA1-3655-DF16-21EB59CB902F]
// </editor-fold>
private long cpf;
// <editor-fold defaultstate="collapsed" desc=" UML Marker ">
// #[regen=yes,id=DCE.CE38871D-CF6D-7DD5-4711-E789F1C62DEA]
// </editor-fold>
public Fisica () {
}
// <editor-fold defaultstate="collapsed" desc=" UML Marker ">
// #[regen=yes,regenBody=yes,id=DCE.7D943216-E7DE-535C-EE92-8E13830BCA67]
// </editor-fold>
public long getCpf () {
return cpf;
}
// <editor-fold defaultstate="collapsed" desc=" UML Marker ">
// #[regen=yes,regenBody=yes,id=DCE.A1FCB160-A012-712C-B010-880F818F76EA]
// </editor-fold>
public void setCpf (long val) {
this.cpf = val;
}
public void imprime(){
System.out.println("---------------------------------------------");
System.out.println("S A I D A - C O N S U L T A");
System.out.println("---------------------------------------------");
System.out.println("CPF.............: " + this.getCpf());
System.out.println("NOME............: " + this.getNome());
System.out.println("DATA DE NASC....: " + FabricaData.getData(this.getDataNascimento()));
System.out.println("CONTATO - CELULAR..........: " + this.getContato().getCelular());
//System.out.println("CONTATO - EMAIL............: " + this.getContato().getEmail());
//System.out.println("CONTATO - TELEFONE.........: " + this.getContato().getTelefone());
//System.out.println("CONTATO - TELEFONE COM.....: " + this.getContato().getTelefoneComercial());
//int i = 1;
/*for (Endereco e : this.getEndereco()){
System.out.println("Endereço [" + i + "]");
System.out.println("ENDERECO - BAIRRO.....................: " + e.getBairro());
System.out.println("ENDERECO - CEP........................: " + e.getCep());
System.out.println("ENDERECO - CIDADE.....................: " + e.getCidade());
System.out.println("ENDERECO - BAIRRO.....................: " + e.getBairro());
System.out.println("ENDERECO - ESTADO.....................: " + e.getEstado());
System.out.println("ENDERECO - RUA........................: " + e.getRua());
System.out.println("ENDERECO - NUMERO.....................: " + e.getNumero());
i++;
}*/
}
}
PessoaFisicaDAOImpl
public List<Fisica> consultar(){
List<Fisica> pess = new ArrayList<Fisica>();
Connection con = null;
PreparedStatement pstm = null;
ResultSet res = null;
final String sql = "SELECT Fisica.cpf, Pessoa.nome, Pessoa.dataNascimento, Contato.telefone, Contato.celular, Contato.telefoneComercial, Contato.email FROM Fisica INNER JOIN Pessoa ON Fisica.idPessoa = Pessoa.idPessoa INNER JOIN Endereco ON Endereco.idPessoa = Pessoa.idPessoa INNER JOIN Contato ON Contato.idPessoa = Pessoa.idPessoa";
con = ConnectionManager.getConnection();
if (ConnectionManager.isConected(con)) {
try {
pstm = con.prepareStatement(sql);
res = pstm.executeQuery();
while (res.next()) {
Fisica fisica = new Fisica();
fisica.setCpf(res.getLong(1));
fisica.setNome(res.getString(2));
fisica.setDataNascimento(res.getDate(3));
fisica.getContato().setTelefone(res.getString(4)); ////////////// AQUI ESTA O ERRO
pess.add(fisica);
}
} catch (SQLException sqlex) {
sqlex.printStackTrace();
} finally {
ConnectionManager.close(con, pstm, res);
}
} else {
System.out.println("Problemas ao conectar!");
}
return pess;
}
Main
System.out.println("..:: Consultar Todas Pessoas Físicas ::..");
PessoaFisicaDAO pdao = new PessoaFisicaDAOImpl();
List<Fisica> pess = pdao.consultar();
for (Fisica p : pess) {
p.imprime();
}
Ele está retornando
Exception in thread "main" java.lang.NullPointerException
Alguem tem alguma idéia?
Carregando comentários...