Erro no metodo construtor da pesquisa

3 respostas
jorgereidinaldo
package locadora.entidade.cadastro;

/**
 *
 * @author jorge
 */
public abstract class Pessoa {
    
    private int codPessoa;
    private String nomePessoa;
    private String enderecoPessoa;
    private long  cpfPessoa;
    private int rgPessoa;
    private String cidadePessoa;
    private int cepPessoa;
    private String compEnderecoPessoa;
    private String estCivilPessoa;
    private String estadoCidPessoa;
    private String bairroPessoa;
   

    public Pessoa(String nome, String endereco, long cpf, int rg, String cidade,
            int cep, String compEndereco, String estCivil,String estCidade,String bairro,int id) {
        this.nomePessoa = nome;
        this.enderecoPessoa = endereco;
        this.cpfPessoa = cpf;
        this.rgPessoa = rg;
        this.cidadePessoa = cidade;
        this.cepPessoa = cep;
        this.compEnderecoPessoa = compEndereco;
        this.estCivilPessoa = estCivil;
        this.estadoCidPessoa = estCidade;
        this.bairroPessoa = bairro;
        this.codPessoa = id;
    }

    public int getCepPessoa() {
        return cepPessoa;
    }

    public void setCepPessoa(int cep) {
        this.cepPessoa = cep;
    }

    public String getCidadePessoa() {
        return cidadePessoa;
    }

    public void setCidadePessoa(String cidade) {
        this.cidadePessoa = cidade;
    }

    public String getCompEnderecoPessoa() {
        return compEnderecoPessoa;
    }

    public void setCompEnderecoPessoa(String compEndereco) {
        this.compEnderecoPessoa = compEndereco;
    }

    public long getCpfPessoa() {
        return cpfPessoa;
    }

    public void setCpfPessoa(long cpf) {
        this.cpfPessoa = cpf;
    }

    public String getEnderecoPessoa() {
        return enderecoPessoa;
    }

    public void setEnderecoPessoa(String endereco) {
        this.enderecoPessoa = endereco;
    }

    public String getEstCivilPessoa() {
        return estCivilPessoa;
    }

    public void setEstCivilPessoa(String estCivil) {
        this.estCivilPessoa = estCivil;
    }

    public String getNomePessoa() {
        return nomePessoa;
    }

    public void setNomePessoa(String nome) {
        this.nomePessoa = nome;
    }

    public int getRgPessoa() {
        return rgPessoa;
    }

    public void setRgPessoa(int rg) {
        this.rgPessoa = rg;
    }

    public String getEstadoCidPessoa() {
        return estadoCidPessoa;
    }

    public void setEstadoCidPessoa(String estCidade) {
        this.estadoCidPessoa = estCidade;
    }

    public String getBairroPessoa() {
        return bairroPessoa;
    }

    public void setBairroPessoa(String bairro) {
        this.bairroPessoa = bairro;
    }

    public int getCodPessoa() {
        return codPessoa;
    }

    public void setCodPessoa(int codPessoa) {
        this.codPessoa = codPessoa;
    }
    
    
}

Aqui onde vem o erro

package locadora.dao;

import conexao.banco.CriaConexao;
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 locadora.entidade.cadastro.Cliente;

/**
 *
 * @author jorge
 */
public class ClienteDao {

    private Connection conexao;

    public ClienteDao() throws SQLException {
        this.conexao = CriaConexao.getConexao();

    }

    public void adicionar(Cliente c1) throws SQLException {
        String sql = "insert  into cadastro_cliente("
                + "nome_cliente,"
                + "endereco,"
                + "cpf,"
                + "rg_cliente,"
                + "cidade_cliente,"
                + "cep_cliente,"
                + "comp_endereco,"
                + "est_civil_cliente,"
                + "estadoCidade,"
                + "bairro) values(?,?,?,?,?,?,?,?,?,?)";
        
        PreparedStatement stmt = conexao.prepareStatement(sql);

        stmt.setString(1, c1.getNomePessoa());
        stmt.setString(2, c1.getEnderecoPessoa());
        stmt.setLong  (3, c1.getCpfPessoa());
        stmt.setInt   (4, c1.getRgPessoa());
        stmt.setString(5, c1.getCidadePessoa());
        stmt.setInt   (6, c1.getCepPessoa());
        stmt.setString(7, c1.getCompEnderecoPessoa());
        stmt.setString(8, c1.getEstCivilPessoa());
        stmt.setString(9, c1.getEstadoCidPessoa());
        stmt.setString(10,c1.getBairroPessoa());
        stmt.executeUpdate();
        stmt.close();

    }

    public void excluir(Cliente cliente) {
    }

    public void alterar(Cliente c1) throws SQLException {
        String sql = "update cadastro_cliente"
                + "nome_cliente = ?,"
                + "endereco = ?,"
                + "cpf = ?,"
                + "rg_cliente = ?,"
                + "cidade_cliente = ?,"
                + "cep_cliente = ?,"
                + "comp_endereco = ?,"
                + "est_civil_cliente = ?,"
                + "estadoCidade = ?,"
                + "bairro"
                + "where cod_cliente = ?";
        
        PreparedStatement stmt = conexao.prepareStatement(sql);

        stmt.setString(1, c1.getNomePessoa());
        stmt.setString(2, c1.getEnderecoPessoa());
        stmt.setLong  (3, c1.getCpfPessoa());
        stmt.setInt   (4, c1.getRgPessoa());
        stmt.setString(5, c1.getCidadePessoa());
        stmt.setInt   (6, c1.getCepPessoa());
        stmt.setString(7, c1.getCompEnderecoPessoa());
        stmt.setString(8, c1.getEstCivilPessoa());
        stmt.setString(9, c1.getEstadoCidPessoa());
        stmt.setString(10,c1.getBairroPessoa());
        stmt.setInt(11, c1.getCodPessoa());
        stmt.executeUpdate();
        stmt.close();

    }

    public void consultar(Cliente cliente) {
    }
    
    
    
    public List<Cliente>getLista(String nome) throws SQLException{
        
    String sql = "select * from cadastro_cliente where nome_cliente like ?";
    PreparedStatement stmt = this.conexao.prepareStatement(sql);
    stmt.setString(1, nome);
    ResultSet rs = stmt.executeQuery();
    
    List <Cliente> minhaLista = new ArrayList<Cliente>();
    
    while (rs.next()){
       // Cliente n2 = new Cliente(nome, nome, cpf, rg, nome, cep, nome, sql, sql, sql, id)
        Cliente n1 = new Cliente();    // Nesta linha ele fica solicitando o metodo construtor que ja existe na classe Cliente que segue logo abaixo
        
      
                n1.setNomePessoa(rs.getString("nome_cliente"));
                n1.setCpfPessoa(rs.getLong("cpf"));
                n1.setEnderecoPessoa(rs.getString("endereco"));
                
                n1.setRgPessoa(rs.getInt("rg_cliente"));
                n1.setCidadePessoa(rs.getString("cidade_cliente"));
                n1.setCepPessoa(rs.getInt("cep_cliente"));
                n1.setCompEnderecoPessoa(rs.getString("comp_endereco"));
                n1.setEstCivilPessoa(rs.getString("est_civil_cliente"));
                n1.setEstadoCidPessoa(rs.getString("estadoCidade"));
                n1.setBairroPessoa(rs.getString("bairro"));
                n1.setCodPessoa(rs.getInt("id"));
                minhaLista.add(n1);
                
                   
         
    }
    rs.close();
    stmt.close();
    
    return minhaLista;
     
    }

}
package locadora.entidade.cadastro;

/**
 *    
 * @author jorge reidinaldo
 */
public class Cliente extends Pessoa {
   
    //Metodo Construtor 
    public Cliente(
            String nome,
            String endereco,
            long cpf,
            int rg,
            String cidade,            
            int cep,
            String compEndereco,
            String estCivil,
            String estCidade,
            String bairro,
            int id)
    {

    super(nome, endereco, cpf, rg, cidade, cep, compEndereco, estCivil,estCidade,bairro,id);              
    }
    
            
    

   
}

3 Respostas

drsmachado

Meu camarada, está na especificação java que, se uma classe não possui um construtor explícito, a JVM irá prover um para a mesma. Este será criado no seguinte formato

public Construtor(){
}

que é o mesmo que

public Construtor(){
super();
}

A partir do momento que existe um construtor explícito, dentro da classe, a JVM só aceitará que este seja utilizado com a chamada contendo todos os parâmetros que foram declarados.

Repare que o construtor da classe Cliente possui inúmeros parâmetros

public Cliente(  
            String nome,  
            String endereco,  
            long cpf,  
            int rg,  
            String cidade,              
            int cep,  
            String compEndereco,  
            String estCivil,  
            String estCidade,  
            String bairro,  
            int id)  
    {  
  
    super(nome, endereco, cpf, rg, cidade, cep, compEndereco, estCivil,estCidade,bairro,id);                
    }

Ou você cria outro construtor sem parâmetros ou passa todos os parâmetros nesta chamada.

Andre_Brito

Se você não codifica um construtor, pode default, existe o construtor vazio, certo? Mas quando você cria um construtor com parâmetros, ele é o único construtor que pode ser acessado. Pra resolver esse problema você terá que criar um construtor que não recebe parâmetros (e com conteúdo dele provavelmente vazio).

public Cliente { public Cliente() {} }

@drsmachado, não vi que você tinha respondido (quando cliquei em responder sua resposta não aparecia ainda).

kritiuns

Browwwwww … TIPOWW vc não tem o construtor que vc esta tentando utilizar

para resolver isso … adicione o um construtor em branco na classe Cliente

public Cliente(){}

Abrazz…

ops na hora q eu respondi não tinha a resposta do cara de cima desculpe.

Criado 16 de maio de 2011
Ultima resposta 16 de mai. de 2011
Respostas 3
Participantes 4