Metodo retornando um BEAN - Java

5 respostas
S

Olá
Estou retornando uma ArrayList de bean com todos os meus clientes, agora eu gostaria de saber como faria para retornar todos os clientes diretor no bean.
Como ficaria esse metodo?

Grato

public ArrayList BuscaCliente() throws Exception{

ArrayList clB = new ArrayList();

Statement stmt = null;

ResultSet rs = null;

ClienteBean cli = null;

stmt = con.createStatement();

rs = stmt.executeQuery(Select id, nome, endereco, estado, sexo, flag1, flag2 from cliente);

while (rs.next()) {

cli = new ClienteBean();

cli.setCodigo(rs.getString(1));

cli.setNome(rs.getString(2));

cli.setEndereco(rs.getString(3));

cli.setEstado(rs.getString(4));

cli.setSexo(rs.getString(5));

cli.setFlag1(rs.getString(6));

cli.setFlag2(rs.getString(7));

clB.add(cli);

}

stmt.close();

con.close();

return clB;

}

5 Respostas

Fox_McCloud

Deixa eu ver: alguns clientes são diretores, e você quer retornar apenas esses?

Se for isso é só mexer na query, ou, se você tiver um tipo Diretor que extende Cliente, verifique se o cliente é uma instância da classe Diretor. Só pra ilustrar:

if(cli instanceof Diretor)System.out.println("diretor");

Detalhe: como o seu código está a segunda solução não funciona, porque somente clientes são instanciados e populados.

Pergunta: na tabela cliente, o que caracteriza um diretor?

Pedrosa

O ideal é ter um código do cargo que seja FK da tabela de cargos que contenha a descrição do mesmo.

Fox_McCloud

Isso, e então é só você adicionar um where cargo = ?

S

na verdade eu quero retornar todos os clientes desse select agora eu só conheço essa forma de retornar para o jsp, agora fiquei com duvida se no bean retornaria todos os clientes tb.

a minha duvida é essa no BEAN posso retornar todos os clientes ou tenho que utilizar um ArrayList ?

Grato

Fox_McCloud

Depende do que você quer e do que você precisa.

Que BEAN é esse? O que ele representa?

O seu método pode retornar um ArrayList, ou um objeto (VO/bean) que contém um atributo ArrayList clientes. Dá na mesma.

Sendo um DAO (Data Access Object) creio que faz mais sentido retornar uma lista…

public List<Cliente> listaClientes(){ ArrayList<Cliente> clientes = new ArrayList<Cliente>(); /* Código para abrir conexão e preparar o statement com a query */ ResultSet rs = pstmt.executeQuery(); // trazendo o resultado do select while(rs.next()){ Cliente c = new Cliente(); /* Código para popular o novo cliente com dados do rs */ clientes.add(c); } /* algum código para fechar os recursos utilizados */ return clientes; }
Sempre observando o uso de try/catch/finally, liberando os recursos abertos, e tendo cuidado com a existência de transacionamento se for o caso.

Criado 8 de fevereiro de 2008
Ultima resposta 8 de fev. de 2008
Respostas 5
Participantes 3