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/GeoPlan", "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); //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.");
//throw new Exception("O campo nome deve ser preenchido.");
}
if (p.getMatricula()==null){
System.out.println("O campo Matricula de ser preenchido.");
// throw new Exception ("O campo matricula deve ser preenchido.");
}
if (p.getSetor()==null){
System.out.println("O campo Setor de ser preenchido.");
//throw new Exception ("O campo setor deve ser preenchido.");
}
if (p.getLogin()==null){
System.out.println("O campo Login de ser preenchido.");
//throw new Exception ("O login matricula deve ser preenchido.");
}
if (p.getSenha()==null){
System.out.println("O campo Semha de ser preenchido.");
//throw new Exception ("O campo senha deve ser preenchido.");
}
if (p.getNascimento()==null){
System.out.println("O campo Nascimento de ser preenchido.");
//throw new Exception ("O campo matricula deve 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;
}