Tenho doi tipo de cliente no banco, Cliente Fisico e Cliente Juridico, e na busca de clientes eu posso escolher qual deles eu quero buscar, ou buscar os dois, para isso tenho duas Procedures, uma pra cada cliente.
deixe eu explicar a estrutura da classe para isso para poder explicar minha duvida…
Tenho uma classe abstrata pessoa, uma classe PessoaFisica que erda de Pessoa e o mesmo para Pessoa juridica, minha classe cliente Possue um atributo do tipo Pessoa, e quando instancio o cliente, passo um objeto pessoaFisica ou Juridica como parametro do costrutor, e no construtor do cliente eu atribui o atributo pessoa ao objeto q eu passei por parametro…bele…agora vou explicar minha duvida:
Na minha classe cliente tenho dois buscar, um pra Fisico e outro Pra juridico.
Classe consultarPf:
public Vector consultarPf(int codigo, String nome,String estado, int cidade,String cpf,String rg , String bloqueio,String tipoestab){
Connection conexao = null;
PreparedStatement state = null;
ResultSet rs = null;
Vector retorno = new Vector();
Vector clientes = new Vector();
Vector fisicas = new Vector();
try{
conexao = Conexao.getConexao();
state = conexao.prepareStatement(sqlBuscar);
state.setInt(1,codigo);
state.setString(2,nome);
state.setString(3,estado);
state.setInt(4,cidade);
state.setString(5,cpf);
state.setString(6,rg);
state.setString(7,bloqueio);
state.setString(8,tipoestab);
rs = state.executeQuery();
while(rs.next()){
PessoaFisica fisica = new PessoaFisica();
Cliente cliente = new Cliente(fisica);
fisica.setPs_bairro(rs.getString("ps_bairro"));
fisica.setPs_cep(rs.getString("ps_cep"));
fisica.setPs_fk_cd_id(rs.getInt("ps_fk_cd_id"));
fisica.setPF_cpf(rs.getString("pf_cpf"));
fisica.setPs_complemento(rs.getString("ps_complemento"));
fisica.setPs_dataCadastro(rs.getString("ps_datacadastro"));
fisica.setPs_email(rs.getString("ps_email"));
fisica.setPs_endereco(rs.getString("ps_endereco"));
fisica.setPs_fax(rs.getString("ps_fax"));
fisica.setPs_fone(rs.getString("ps_fone"));
fisica.setPs_foneContato(rs.getString("ps_fonecontato"));
fisica.setPF_rg(rs.getString("pf_rg"));
fisica.setPs_nome(rs.getString("ps_nome"));
fisica.setPs_nomeContato(rs.getString("ps_nomecontato"));
fisica.setPs_numEndereco(rs.getString("ps_numendereco"));
fisica.setPs_observacao(rs.getString("ps_observacao"));
fisica.setPs_id(rs.getInt("ps_id"));
fisicas.add(fisica);
cliente.setCidadeNome(rs.getString("cd_nome"));
cliente.setCl_bloqueio(rs.getBoolean("cl_bloqueio"));
cliente.setCl_codCliente(rs.getString("cl_codcliente"));
cliente.setCl_tipoEstabelecimento(rs.getString("cl_tipoestabelecimento"));
cliente.setUfSigla(rs.getString("Uf_sigla"));
clientes.add(cliente);
}
retorno.add(fisicas);
retorno.add(clientes);
}catch(Throwable e){
JOptionPane.showMessageDialog(null, sqlBuscar);
e.printStackTrace();
return null;
}finally{
try{
if (conexao != null)
conexao.close();
if(state != null)
state.close();
}catch(Throwable e){
e.printStackTrace();
return null;
}
return retorno;
}
}
e o PJ é a msm coisa, só mudando:
PessoaFisica fisica = new PessoaFisica();
Cliente cliente = new Cliente(fisica);
para
PessoaJuridica juridica = new PessoaJuridica();
Cliente cliente = new Cliente(juridica);
e a parte de do set do objeto,
Agora o problema é o seguinte quando eu quero consultar os dois eu tenho q executar as duas funcoes, e para mostar na tabela, nao vao estar ordenados , pq ele vai ordena os resultados da primeira busca, e depois da segunda busca, e nao todos os resultados juntos, como faria isso, aceito outros metodos de consultar, esse que eu fiz é o q eu acho q tem q fazer, caso nao seja estou aberto para novas opniões, obrigado.