Ajuda com DAO filtro

Pessoal estou precisando um auxilio tenho uma classe DAO e necessito fazer uma pesquisa para listar no grid um filtro.Estou utilizando JAVA no back end e o Flex como front-end.

Segue as minhas classes


package br.com.servicos;

public class Cliente {

private int codigo;
private  String nome;
private String cpf;


public int getCodigo() {
    return codigo;
}

public void setCodigo(int codigo) {
    this.codigo = codigo;
}

public String getNome() {
    return nome;
}

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

public String getCpf() { 
    return cpf;
}

public void setCpf(String cpf) {
    this.cpf = cpf;
  }


  }

package br.com.servicos;

import java.awt.Image;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.sql.ResultSet;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.List;
import java.util.ArrayList;

import javax.swing.JOptionPane;


public class ClienteDAO {
 	
  public boolean insert (Cliente cliente)  {

	
	  try {
		  
		 String sql ="Insert into cliente(codigo,nome,cpf) values (?,?,?)";
		 Connection con = ConnectionFcatory.getConnection();
		 PreparedStatement stmt = con.prepareStatement(sql);
		 stmt.setLong(1,cliente.getCodigo());
		 stmt.setString(2,cliente.getNome());
		 stmt.setString(3,cliente.getCpf());
		 stmt.execute();
		 stmt.close();
		 con.commit();
		 return true;
	  }catch (SQLException erro) {
		JOptionPane.showMessageDialog(null,"Erro no banco de dados "+erro);
		 return false;
	}
	 
  }

  
  
	public boolean deleta (Cliente cliente) {
		try{
			String sql="Delete from cliente where codigo=?";
			Connection con = ConnectionFcatory.getConnection();
			PreparedStatement stmt = con.prepareStatement(sql);
			 stmt.setInt(1,cliente.getCodigo());
			 stmt.execute();
			 stmt.close();
			 con.commit();
			 return true;
		  }catch (SQLException erro) {
			JOptionPane.showMessageDialog(null,"Erro no banco de dados "+erro);
			 return false;
		}
		}
	

	public  List pesquisar()    {
	    	List   clientes = new ArrayList();
		   try{
			   String sql="Select * from cliente where codigo=?";
		       Connection con = ConnectionFcatory.getConnection();
		       PreparedStatement stmt = con.prepareStatement(sql);
		       ResultSet rs = stmt.executeQuery();
		       while (rs.next()){
		    	   Cliente obj = new Cliente();
		    	   obj.setCodigo(rs.getInt("codigo"));	 
			       clientes.add(obj);
			      
		       }
		      stmt.close();
		      rs.close();
		      con.commit();
		   }catch (SQLException erro) {
			   JOptionPane.showMessageDialog(null,"Erro no banco de dados "+erro);
		   }
		return clientes;
		
	   }
	
	
	public  List listar()    {
	    	List   clientes = new ArrayList();
		   try{
			   String sql="Select * from cliente";
		       Connection con = ConnectionFcatory.getConnection();
		       PreparedStatement stmt = con.prepareStatement(sql);
		       ResultSet rs = stmt.executeQuery();
		       while (rs.next()){
		    	   Cliente obj = new Cliente();
		    	   obj.setCodigo(rs.getInt("codigo"));
		    	   obj.setNome(rs.getString("nome"));
		    	   obj.setCpf(rs.getString("cpf"));
			      clientes.add(obj);
			      
		       }
		      stmt.close();
		      rs.close();
		      con.commit();
		   }catch (SQLException erro) {
			   JOptionPane.showMessageDialog(null,"Erro no banco de dados "+erro);
		   }
		return clientes;
		
	   }
	
	    public boolean update (Cliente cliente){
	    	try{
	    		String sql="update cliente set  nome=?,cpf=? where codigo=? ";
	    	    Connection con = ConnectionFcatory.getConnection();
	    	    PreparedStatement stmt = con.prepareStatement(sql);
	    	    stmt.setString(1,cliente.getNome());
	    	    stmt.setString(2, cliente.getCpf());
	    	    stmt.setInt(3,cliente.getCodigo());
	    	    stmt.execute();
	    	    stmt.close();
	    	    con.commit();
	    	    return true;
	    	  }catch (SQLException erro) {
	    		    JOptionPane.showMessageDialog(null,"Não foi possivel alterar o registro"+erro);
	    	       return false;        
	    	  }
	        }
          }
	
	
	

Utilizei o procedimento pesquisa mais o java retornou um erro
Erro no banco de dados postgresql :Nenhum valor especificado para parametro 1

faltou passar o código como parametro para consulta.

public List pesquisar(long codigo) { // aqui // ... Connection con = ConnectionFcatory.getConnection(); PreparedStatement stmt = con.prepareStatement(sql); stmt.setLong(1, codigo); // e aqui ResultSet rs = stmt.executeQuery(); // ...

Simples,

mandou realizar uma pesquisa por um código e não setou nada no PreparedStament.
Basicamente, isso resolve:

String sql="Select * from cliente where codigo=?"; Connection con = ConnectionFcatory.getConnection(); PreparedStatement stmt = con.prepareStatement(sql); // seta o código (onde está ?) stmt.setString(1, "codigo");

É só setar de acordo com o tipo do seu atributo código :slight_smile:
Abraços.

Pessoal fiz como vocês me pediram mas acredito que agora o meu erro esta no flex .Vocês trabalham com flex.No aguardo