GARANTIR DESCONTO

Fórum erro: java.lang.NullPointerException #586467

03/10/2017

0

Ola pessoal,
Sou iniciante em java e estou fazendo um projeto por conta própria, para praticar. Ao compilar gera o erro java.lang.NullPonterException. Não consigo identificar o problema.
Criei uma classe Pessoa, com os gets e sets, uma classe PessoaDAO, uma classe PessoaBO e uma para a conexão.
Conexão:


package DAO;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.ResultSet;
import java.sql.*;

public class Conexao {
    Connection con;
    PreparedStatement stmt;
    ResultSet rs;

    public void open() throws ClassNotFoundException {
          try{
              Class.forName("org.postgresql.Driver");
              con = DriverManager.getConnection("jdbc:postgresql://localhost:5432/bd", "postgres", "1");
              }
          catch (Exception e){
              e.printStackTrace();
          }
        
    }

    public void close() throws SQLException {
        try{
            con.close();
            }
        catch (Exception e){
            e.printStackTrace();
        }
      

    }

}



PessoaDAO:


package DAO;

import Business.PessoaBO;
import Model.Pessoa;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

public class PessoaDAO {
    Conexao conexao;

    public PessoaDAO() throws ClassNotFoundException, SQLException {
        this.conexao = (Conexao) new Conexao().con;
    }


    private Pessoa resultSet2Model(ResultSet rs) throws SQLException, ClassNotFoundException {
       
            conexao.open();
            Pessoa p = new Pessoa(rs.getInt("id"),
           rs.getString("nome"),
           rs.getString("matricula"),
           rs.getString("setor"),
          rs.getString("login"),
          rs.getString("senha"),
          rs.getString("email"),
          rs.getString("telefone"),
          rs.getDate("nascimento"));
          conexao.close();
         return p; 
    }

    public Pessoa inserir(Pessoa p) throws SQLException {
       String sql1 = "INSERT INTO Pessoa (id,nome, matricula, setor, login, senha, email, telefone, nascimento) VALUES(?,?,?,?,?,?,?,?,?)";
    
        PreparedStatement st1 = conexao.con.prepareStatement(sql1);  
        st1.setInt(1, p.getId());
        st1.setString(2, p.getNome());
        st1.setString (3, p.getMatricula());
        st1.setString(4, p.getSetor());
        st1.setString(5, p.getLogin());
        st1.setString(6,p.getSenha());
        st1.setString(7, p.getEmail());
        st1.setString(8, p.getPhone());
        st1.setDate(9, new java.sql.Date (p.getNascimento().getDate()));
        ResultSet rs1 = st1.executeQuery();
        rs1.next();
        st1.execute(sql1);
        return p;
    }



PessoaBO:


package Business;

import java.sql.SQLException;
import java.util.List;
import Model.Pessoa;
import DAO.PessoaDAO;
import Business.PessoaBO;


public class PessoaBO {

     private PessoaDAO DAO;
     public PessoaBO() throws ClassNotFoundException, SQLException {

        DAO= new PessoaDAO();
    }

    private void validarDados(Pessoa p) throws Exception {

        if (p.getNome()==null){
            System.out.println("O campo Nome de ser preenchido.");
             }

        if (p.getMatricula()==null){
            System.out.println("O campo Matricula de ser preenchido.");
              }
         if (p.getSetor()==null){
             System.out.println("O campo Setor de ser preenchido.");
              }
          if (p.getLogin()==null){
              System.out.println("O campo Login de ser preenchido.");
              }
           if (p.getSenha()==null){
               System.out.println("O campo Semha de ser preenchido.");
              }
            if (p.getNascimento()==null){
                System.out.println("O campo Nascimento de ser preenchido.");
                   }
   }
    
    public Pessoa cadastrarPessoa(Pessoa p) throws SQLException, Exception {
 
       validarDados(p);
         if (p.getId()==0)
            p = DAO.inserir(p);
 
       else

            DAO.alterar(p);


        return p;


    }
    


esse é o erro gerado.
ava.lang.NullPointerException
at DAO.PessoaDAO.inserir(PessoaDAO.java:75)
at Business.PessoaBO.cadastrarPessoa(PessoaBO.java:85)
at geoplanmcsa.GeoPlanMCSA.main(GeoPlanMCSA.java:30)

Acredito que alguma variável esteja retornando Null, mas não sei o pq. será que algum de vcs poderia me dar essa ajuda.
Desde já agradeço.
Eduardo

Eduardo

Responder

Post mais votado

06/10/2017

Eduardo, se acostume com esse erro pois é o mais famoso do Java. Porém o mais fácil de resolver, pois sempre que ele aparecer significa que algum objeto que você está tentando usar não foi instanciado corretamente e está com o valor nulo.

Nathália Hirth

Nathália Hirth
Responder

Gostei + 1

Mais Posts

05/10/2017

Luiz Vichiatto

Não está faltando usuário e senha no acesso ao banco de dados?
É Postgres o banco de dados?
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar