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…
[code]/*
- 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 INTOpessoa
(nome
,telefone
,email
) " +
" VALUE (?,?,?); "+
" INSERT INTOpessoa_fisica
(Pessoa_idPessoa
,cpf
,rg
) " +
" VALUE ((SELECT MAX(pessoa.idPessoa
) from pessoa),?,?); " +
" INSERT INTOfuncionario
(endereco
,senha
,administrador
,Pessoa_Fisica_Pessoa_idPessoa
) " +
" VALUE (?,?,?,(SELECT MAX(pessoa
.idPessoa
) frompessoa
)); ";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 = “UPDATEpessoa
SETnome
= ?,telefone
= ?,email
= ?” +
“WHEREidPessoa
= ?;” +
“UPDATEpessoa_fisica
SETcpf
= ?,rg
= ?” +
“WHEREPessoa_idPessoa
= ?;” +
“UPDATEfuncionario
SETendereco
= ?,senha
= ?,” +
"administrador
= ?" +
“WHEREPessoa_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 FROMpessoa
" +
“WHEREidPessoa
= ? ;” +
"DELETE FROMpessoa_fisica
" +
“WHEREpessoa_fisica
.Pessoa_idPessoa
= ?;” +
"DELETE FROMfuncionario
" +
“WHEREfuncionario
.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);}
}
[/code]
/*
* 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";
}
}