JSF - Problemas ao fazer o ManagedBeans usar o DAO

2 respostas
K

ola pessoal
eu tenho uma estrutura de classes, porem, estou tendo problemas ao fazer elas conversarem entre si
estou tentando fazer da dorma mais correta possivel, porem, nao estou conseguindo
vejam a estrutura das minhas classes
classe: PessoaFisica

package br.com.krusst.precadastro.beans;

import br.com.krusst.precadastro.beans.CursoSuperior;
import br.com.krusst.precadastro.beans.Escolaridade;
import br.com.krusst.precadastro.beans.EstadoCivil;
import br.com.krusst.precadastro.beans.Sexo;
import br.com.krusst.precadastro.database.GerenciadorConexao;
import br.com.krusst.precadastro.util.KrusstException;


public class PessoaFisica extends Pessoa {

	private static final long serialVersionUID = 1094580938504390L;

	private EstadoCivil estadoCivil;

    private Escolaridade escolaridade;

    private CursoSuperior cursoSuperior;

    private int profissao;

    private Sexo sexo;

	public PessoaFisica() {
	}    
    
	public PessoaFisica(EstadoCivil estadoCivil, Escolaridade escolaridade,	CursoSuperior cursoSuperior, int profissao, Sexo sexo) {
		super();
		this.estadoCivil = estadoCivil;
		this.escolaridade = escolaridade;
		this.cursoSuperior = cursoSuperior;
		this.profissao = profissao;
		this.sexo = sexo;
	}    
	
	public EstadoCivil getEstadoCivil() {
		return estadoCivil;
	}

	public void setEstadoCivil(EstadoCivil estadoCivil) {
		this.estadoCivil = estadoCivil;
	}

	public Escolaridade getEscolaridade() {
		return escolaridade;
	}

	public void setEscolaridade(Escolaridade escolaridade) {
		this.escolaridade = escolaridade;
	}

	public CursoSuperior getCursoSuperior() {
		return cursoSuperior;
	}

	public void setCursoSuperior(CursoSuperior cursoSuperior) {
		this.cursoSuperior = cursoSuperior;
	}

	public int getProfissao() {
		return profissao;
	}

	public void setProfissao(int profissao) {
		this.profissao = profissao;
	}

	public Sexo getSexo() {
		return sexo;
	}

	public void setSexo(Sexo sexo) {
		this.sexo = sexo;
	}

	public PessoaFisica getPessoaFisica(){
		PessoaFisica pess = new PessoaFisica();
		pess.setNome(getNome());
		return pess;
	}
	
//metodo que usei de teste no inicio, esta funcionando
	public int pessoaFisicaCadastraDB(PessoaFisica pessoa) throws KrusstException{
		Connection conn  = null;
		PreparedStatement stmt = null;
		String sql = "EXEC SPTesteInsere ?,?";
		int qtd = 0;
		try {
			conn = GerenciadorConexao.getConexao();
			stmt = conn.prepareStatement(sql);
			stmt.setString(1,pessoa.getNome());
			stmt.setString(2,pessoa.getNome() + "22");
			qtd = stmt.executeUpdate();
			
		} catch (Exception e) {
				throw new KrusstException("erro no update",e);
		}
		return qtd;
	}
}

interface PessoaFisicaDAO

package br.com.krusst.precadastro.dao;

import br.com.krusst.precadastro.beans.PessoaFisica;
import br.com.krusst.precadastro.util.KrusstException;

public interface PessoaFisicaDAO{
	public int insert(PessoaFisica pessoa) throws KrusstException;
	public int update();
}

classe:PessoaFisicaDB

package br.com.krusst.precadastro.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;

import br.com.krusst.precadastro.beans.PessoaFisica;
import br.com.krusst.precadastro.database.GerenciadorConexao;
import br.com.krusst.precadastro.util.KrusstException;

public class PessoaFisicaDB implements PessoaFisicaDAO{

	@Override
	public int insert(PessoaFisica pessoa) throws KrusstException{
		Connection conn  = null;
		PreparedStatement stmt = null;
		String sql = "EXEC SPTesteInsere ?,?";
		int qtd = 0;
		try {
			conn = GerenciadorConexao.getConexao();
			stmt = conn.prepareStatement(sql);
			stmt.setString(1,pessoa.getNome());
			qtd = stmt.executeUpdate();
			
		} catch (Exception e) {
				throw new KrusstException("erro",e);
		}
		return qtd;
	}

	@Override
	public int update() {
		// TODO Auto-generated method stub
		return 0;
	}
	
}

classe: PessoaFisicaMB

package br.com.krusst.precadastro.managedbeans;

import java.util.Map;

import br.com.krusst.precadastro.beans.CursoSuperior;
import br.com.krusst.precadastro.beans.Escolaridade;
import br.com.krusst.precadastro.beans.EstadoCivil;
import br.com.krusst.precadastro.beans.PessoaFisica;
import br.com.krusst.precadastro.beans.Sexo;
import br.com.krusst.precadastro.util.KrusstException;
import br.com.krusst.precadastro.dao.PessoaFisicaDAO;

import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
public class PessoaFisicaMB extends PessoaFisica{

	public PessoaFisicaMB() {
		super();
		// TODO Auto-generated constructor stub
	}

	public PessoaFisicaMB(EstadoCivil estadoCivil, Escolaridade escolaridade,CursoSuperior cursoSuperior, int profissao, Sexo sexo) {
		super(estadoCivil, escolaridade, cursoSuperior, profissao, sexo);
		// TODO Auto-generated constructor stub
	}

	public String cadastrar() throws KrusstException{
		//a classe "PessoaFisicaMB" nao reconhece o metodo insert
		insert(getPessoaFisica());
		return("sucesso");
	}

}

bem, essa é a minha estrutura de classes, porem, qdo vou chamar o metodo “insert”, ele nao reconhece, queria saber o pq que isso ocorre?
oq estou fazendo de errado!?

abs
T+

2 Respostas

vanilton.coelho

Porque você só setou um parâmetro do PreparedStatement já que no seu SQL vc tem dois parâmetros???

K

isso pe um teste, eu tirei parte do código pra nao ficar muito grande e complicar na hora de entender
abs

Criado 26 de fevereiro de 2008
Ultima resposta 27 de fev. de 2008
Respostas 2
Participantes 2