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:
PessoaDAO:
PessoaBO:
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.
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
Curtir tópico
+ 0
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
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?
É Postgres o banco de dados?
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)