Exception Details: java.lang.NullPointerException (Me Ajudem)

0 respostas
Bruno_Moura

Ola Pessoal boa noite estou começando em java e estou desenvolvendo um trabalho para a faculdade.
Resumindo um sistema para farmacias jsf, jsp
Estou utilizando a seguinte sequencias de classifição.
Recebo o NullPointerException quando insiro um funcionarario na linha que esta destacada em vermelho.

Descrição da exeção

Description: An unhandled exception occurred during the execution of the web application. Please review the following stack trace for more information regarding the error.

Exception Details: java.lang.NullPointerException
null

Possible Source of Error:
Class Name: managedbeans.FuncionarioBean
File Name: FuncionarioBean.java
Method Name: inserirFuncionario
Line Number: 135

Muito Obrigado....

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package dao;
import conexao.Conexao;
import java.sql.*;
import java.util.*;
import conexao.Conexao.*;
import dto.DTOFuncionario;

/**
 *
 * @author Bruno
 */
public class DAOFuncionario {
    private Connection con;

    public DAOFuncionario(){
        con = Conexao.getInstancia().criarConexao();
    }

    /*
        *Metodo que Efetua o Login do usuario no sistema
     */
     public DTOFuncionario efetuarLogin(DTOFuncionario f){

         String sql = " SELECT funcionario.idFuncionario,pessoa.nome,pessoa.email,funcionario.senha," +
                 " funcionario.administrador,funcionario.Pessoa_Fisica_Pessoa_idPessoa " +
                 " from pessoa,funcionario where " +
                 " pessoa.idPessoa = funcionario.Pessoa_Fisica_Pessoa_idPessoa " +
                 " and pessoa.email=? " +
                 " and funcionario.senha=? ";
           try {
               PreparedStatement smtp = con.prepareStatement(sql);

               //  smtp.setBoolean(1,f.isAdministrador());
             smtp.setString(1, f.getEmail());
             smtp.setString(2,f.getSenha());
             ResultSet rs = smtp.executeQuery();

             while (rs.next()){
                 
                 f.setId(rs.getInt(1));
                 f.setIdFuncionario(rs.getInt(1));
                 f.setNome(rs.getString(2));
                 f.setEmail(rs.getString(3));
                 f.setAdministrador(rs.getBoolean(5));


             }
         } catch (SQLException sqle) {
              sqle.printStackTrace();
         }
          return f;

     }

     /*
      * Metodo que pesquisa os usuario nos banco de dados
      * pesquisa pelo nome ou todos
      */

     public List<DTOFuncionario> pesquisar(String nome){
         List<DTOFuncionario> funcionarios = new ArrayList<DTOFuncionario>();

         String sql = "SELECT pessoa.*,pessoa_fisica.*,funcionario.*from pessoa,pessoa_fisica,funcionario where" +
                 "pessoa.idPessoa = pessoa_fisica.Pessoa_idPessoa" +
                 "and funcionario.Pessoa_Fisica_Pessoa_idPessoa = pessoa_fisica.Pessoa_idPessoa" +
                 "and UPPER(`pessoa`.`nome`) LIKE '%" + nome + "%'";
           try {
                PreparedStatement smtp = con.prepareStatement(sql);
                ResultSet rs = smtp.executeQuery();
                while (rs.next()){

                    // a linha abaixo tem observar o processo
                    DTOFuncionario f = new DTOFuncionario();
                    f.setId(rs.getInt(1));
                    f.setNome(rs.getString(2));
                    f.setTelefone(rs.getString(3));
                    f.setEmail(rs.getString(4));
                    f.setCpf(rs.getString(6));
                    f.setCpf(rs.getString(7));
                    f.setAdministrador(rs.getBoolean(13));
                    f.setEndereco(rs.getString(9));

                    funcionarios.add(f);

                }

         } catch (SQLException sqle) {
             sqle.printStackTrace();
         }
         return funcionarios;
     }

     /*
      * Metodo para inserir funcionario no banco
      */

     public void inserir(DTOFuncionario funcionario){
          String sql = " INSERT INTO `pessoa`(`nome`,`telefone`,`email`) " +
                  " VALUE (?,?,?); "+
                  " INSERT INTO `pessoa_fisica`(`Pessoa_idPessoa`,`cpf`,`rg`) " +
                  " VALUE ((SELECT MAX(pessoa.`idPessoa`) from pessoa),?,?); " +
                  " INSERT INTO `funcionario`(`endereco`,`senha`,`administrador`,`Pessoa_Fisica_Pessoa_idPessoa`) " +
                  " VALUE (?,?,?,(SELECT MAX(`pessoa`.`idPessoa`) from `pessoa`)); ";

          try {
               PreparedStatement ps = con.prepareStatement(sql);
               ps.setString(1,funcionario.getNome());
               ps.setString(2, funcionario.getTelefone());
               ps.setString(3,funcionario.getEmail());

               ps.setInt(4, funcionario.getIdPessoaFisica());
               ps.setString(4, funcionario.getCpf());
               ps.setString(5, funcionario.getRg());

               ps.setString(6,funcionario.getEndereco());
               ps.setString(7,funcionario.getSenha());
               ps.setBoolean(8,funcionario.isAdministrador());
               ps.executeUpdate();
               limpar_campos(funcionario);


         } catch (SQLException sqle) {
              sqle.printStackTrace();
         }
     }

     public void alterar(DTOFuncionario funcionario){
         String sql = "UPDATE `pessoa`  SET `nome` = ?,`telefone` = ?,`email` = ?" +
                 "WHERE  `idPessoa` = ?;" +
                 "UPDATE `pessoa_fisica`  SET `cpf` = ?,`rg` = ?" +
                 "WHERE `Pessoa_idPessoa` = ?;" +
                 "UPDATE `funcionario`  SET `endereco` = ?,`senha` = ?," +
                 "`administrador` = ?" +
                 "WHERE `Pessoa_Fisica_Pessoa_idPessoa` = ?;";
         try {
             PreparedStatement ps = con.prepareCall(sql);

             ps.setString(1,funcionario.getNome());
             ps.setString(2,funcionario.getTelefone());
             ps.setString(3,funcionario.getEmail());
             ps.setInt(4,funcionario.getId());

             ps.setString(5,funcionario.getCpf());
             ps.setString(6,funcionario.getRg());
             ps.setInt(7,funcionario.getId());

             ps.setString(8, funcionario.getEndereco());
             ps.setString(9,funcionario.getSenha());
             ps.setBoolean(10,funcionario.isAdministrador());
             ps.setInt(11,funcionario.getId());
             ps.executeUpdate();
             limpar_campos(funcionario);


         } catch (SQLException sqle) {
             sqle.printStackTrace();
         }
     }

     public void excluir(DTOFuncionario f){
         String sql="DELETE FROM `pessoa` " +
                 "WHERE `idPessoa` = ? ;" +
                 "DELETE FROM `pessoa_fisica` " +
                 "WHERE `pessoa_fisica`.`Pessoa_idPessoa` = ?;" +
                 "DELETE FROM `funcionario` " +
                 "WHERE `funcionario`.`Pessoa_Fisica_Pessoa_idPessoa` =?;";
         try {

             PreparedStatement ps = con.prepareCall(sql);
             ps.setInt(1,f.getId());
             ps.setInt(2,f.getId());
             ps.setInt(3,f.getId());
             ps.executeUpdate();
             limpar_campos(f);

         } catch (SQLException e) {
             e.printStackTrace();

         }
     }

     public void limpar_campos(DTOFuncionario func){
         func.setNome(null);
         func.setTelefone(null);
         func.setEmail(null);
         func.setCpf(null);
         func.setRg(null);
         func.setEndereco(null);
         func.setSenha(null);
         func.setAdministrador(false);
         

     }
}
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package dto;

/**
 *
 * @author Administrador
 */
public class DTOFuncionario extends DTOPessoaFisica {
    private Integer idFuncionario;
    private String endereco;
    private String senha;
    private boolean administrador;
    private Integer idPessoaFisica ;

    public DTOFuncionario(){}

    public DTOFuncionario(String nome,String telefone,String email,String rg,String cpf,
            String endereco, String senha,boolean administrador,Integer idPessoaFisica){
        //Integer idPessoa,
         // super.id = idPessoa;
        //Integer idFuncionario,
        //this.idFuncionario = idFuncionario;
          super.nome = nome;
          super.telefone = telefone;
          super.email = email;
          super.rg = rg;
          super.cpf = cpf;
          this.endereco = endereco;
          this.senha = senha;
          this.administrador = administrador;
          this.idPessoaFisica = idPessoaFisica;

    }
    /**
     * @return the idFuncionario
     */
    public Integer getIdFuncionario() {
        return idFuncionario;
    }

    /**
     * @param idFuncionario the idFuncionario to set
     */
    public void setIdFuncionario(Integer idFuncionario) {
        this.idFuncionario = idFuncionario;
    }

    /**
     * @return the endereco
     */
    public String getEndereco() {
        return endereco;
    }

    /**
     * @param endereco the endereco to set
     */
    public void setEndereco(String endereco) {
        this.endereco = endereco;
    }

    /**
     * @return the senha
     */
    public String getSenha() {
        return senha;
    }

    /**
     * @param senha the senha to set
     */
    public void setSenha(String senha) {
        this.senha = senha;
    }

    /**
     * @return the administrador
     */
    public boolean isAdministrador() {
        return administrador;
    }

    /**
     * @param administrador the administrador to set
     */
    public void setAdministrador(boolean administrador) {
        this.administrador = administrador;
    }

    /**
     * @return the idPessoaFisica
     */
    public Integer getIdPessoaFisica() {
        return idPessoaFisica;
    }

    /**
     * @param idPessoaFisica the idPessoaFisica to set
     */
    public void setIdPessoaFisica(Integer idPessoaFisica) {
        this.idPessoaFisica = idPessoaFisica;
    }

}
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package dto;

import java.io.Serializable;


/**
 *
 * @author Bruno
 */
public class DTOPessoa implements Serializable {
    protected int id;
    protected String nome;
    protected String telefone;
    protected String email;

    public DTOPessoa(){}

    public DTOPessoa(Integer id, String nome, String telefone,String email){
         this.id = id;
         this.nome = nome;
         this.telefone= telefone;
         this.email = email;
    }

    /**
     * @return the nome
     */
    public String getNome() {
        return nome;
    }

    /**
     * @param nome the nome to set
     */
    public void setNome(String nome) {
        this.nome = nome;
    }

    /**
     * @return the telefone
     */
    public String getTelefone() {
        return telefone;
    }

    /**
     * @param telefone the telefone to set
     */
    public void setTelefone(String telefone) {
        this.telefone = telefone;
    }

    /**
     * @return the email
     */
    public String getEmail() {
        return email;
    }

    /**
     * @param email the email to set
     */
    public void setEmail(String email) {
        this.email = email;
    }

    /**
     * @return the id
     */
    public int getId() {
        return id;
    }

    /**
     * @param id the id to set
     */
    public void setId(int id) {
        this.id = id;
    }

}
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package dto;

/**
 *
 * @author Bruno
 */
public class DTOPessoaFisica extends DTOPessoa {
    protected String cpf;
    protected String rg;

    public DTOPessoaFisica(){}

    public DTOPessoaFisica(Integer id, String nome, String telefone, String email, String cpf, String rg) {
       // super(id,nome,telefone,email);
        super.id=id;
        super.nome = nome;
        super.telefone = telefone;
        super.email = email;
        this.cpf = cpf;
        this.rg = rg;
    }

    public String getCpf() {
        return cpf;
    }

    /**
     * @param cpf the cpf to set
     */
    public void setCpf(String cpf) {
        this.cpf = cpf;
    }

    /**
     * @return the rg
     */
    public String getRg() {
        return rg;
    }

    /**
     * @param rg the rg to set
     */
    public void setRg(String rg) {
        this.rg = rg;
    }
}
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package managedbeans;

import dao.DAOFuncionario;
import dto.DTOFuncionario;
import java.util.List;

/**
 *
 * @author Bruno
 */
public class FuncionarioBean{

    private DTOFuncionario funcionario;
    private DAOFuncionario funcionarios;
    private Boolean erro;
    private boolean edicao;
    private String nome;
    private List<DTOFuncionario> listaFuncionarios;

    public FuncionarioBean() {
        setFuncionario(new DTOFuncionario());
    }

    /**
     * @return the funcionario
     */
    public DTOFuncionario getFuncionario() {
        return funcionario;
    }

    /**
     * @param funcionario the funcionario to set
     */
    public void setFuncionario(DTOFuncionario funcionario) {
        this.funcionario = funcionario;
    }

    /**
     * @return the erro
     */
    public Boolean getErro() {
        return erro;
    }

    /**
     * @param erro the erro to set
     */
    public void setErro(Boolean erro) {
        this.erro = erro;
    }

    /**
     * @return the nome
     */
    public String getNome() {
        return nome;
    }

    /**
     * @param nome the nome to set
     */
    public void setNome(String nome) {
        this.nome = nome;
    }

    /**
     * @return the listaFuncionarios
     */
    public List<DTOFuncionario> getListaFuncionarios() {
        return listaFuncionarios;
    }

    /**
     * @param listaFuncionarios the listaFuncionarios to set
     */
    public void setListaFuncionarios(List<DTOFuncionario> listaFuncionarios) {
        this.listaFuncionarios = listaFuncionarios;
    }

    /**
     * @return the edicao
     */
    public boolean isEdicao() {
        return edicao;
    }

    /**
     * @param edicao the edicao to set
     */
    public void setEdicao(boolean edicao) {
        this.edicao = edicao;
    }
    /*
     * Método de apoio para configurar a navegação de edição de usuário
     */

    private String prepararEdicao(boolean edicao) {
        setEdicao(edicao);
        return "edicaoFuncionario";
    }


    /*
     * Método de anavegação e preparo de inserção de usuário
     */
    public String insercaoFuncionario() {
        funcionario = new DTOFuncionario();
        return prepararEdicao(false);
    }


    /*
     * Método de navegação e preparo de edição de usuário
     */
    public String edicaoFuncionario() {
        return prepararEdicao(true);

    }

    public String pesquisaFuncionario() {
        return "";

    }

    public String pesquisarFuncionarios() {
        listaFuncionarios = funcionarios.pesquisar(nome);
        return "";
    }

    public String inserirFuncionario() {
[color=red] funcionarios.inserir(funcionario);[/color]
        edicao = false;
        return "";
    }

    public String editarFuncionarios() {
        funcionarios.alterar(funcionario);

        /*
         * Ap�s editar o usu�rio no Banco de Dados, tamb�m altera
         * na lista pesquisada anteriormente para evitar de
         * refazer a pesquisa.
         */
        for (int i = 0; i < listaFuncionarios.size(); i++) {
            DTOFuncionario f = listaFuncionarios.get(i);
            if (f.getId() == funcionario.getId()) {
                listaFuncionarios.set(i, funcionario);
                break;
            }
        }

        return "";
    }

    public String excluirFuncionario() {
        /*
         * Ap�s excluir o usu�rio no Banco de Dados, tamb�m exclui
         * na lista pesquisada anteriormente para evitar de
         * refazer a pesquisa.
         */
        funcionarios.excluir(funcionario);

        for (int i = 0; i < listaFuncionarios.size(); i++) {
            DTOFuncionario f = listaFuncionarios.get(i);
            if (f.getId() == funcionario.getId()) {
                listaFuncionarios.remove(i);
                break;
            }
        }

        return "";
    }

    public String inicial() {
        return "inicial";
    }
}
Criado 29 de abril de 2010
Respostas 0
Participantes 1