Levando em conta o que você disse, eu criaria apenas um DAO supondo que a sua classe Locacao é a representação de uma tabela no banco.
Té mais.
victorrgds
M@C:
Levando em conta o que você disse, eu criaria apenas um DAO supondo que a sua classe Locacao é a representação de uma tabela no banco.
Té mais.
sim, é a representação de uma tabela no banco…porém assim, na minha interface de locação vc tem que especificar se o cliente é PF ou PJ através de um JRadio, para ai sim fazer uma busca do cliente e depois o veículo, assim juntando as duas informações e efetuando a locação…
Você acha que não é necessário criar 2 daos então?
abs
M
M112
Eu acredito que não, pois embora uma locação possa ser feita por pessoas físicas de jurídicas, existe apenas uma classe Locacao e por esse motivo acredito que apenas um DAO seja necessário para manipular locações na base.
Mas seria legal ver a opinião de mais gente aqui no fórum.
Té mais.
victorrgds
Sim, comecei a analisar aqui e, na parte da consulta eu não precisaria de um extend para dar um select na tabela de clientepf ou pj, então creio que não necessite mesmo de dois daos…
valeu bro, vamos ver se alguem da mais dicas aqui…
ssh
só uma mesmo, você pode usar o conceito de herança/polimorfismo. criando uma classe Pessoa, e pessoa juridica e fisica extenderiam Pessoa.
e dentro da classe locação você cria um atributo do tipo Pessoa.
somente 1 dao p/ locação.
victorrgds
sim ssh, no caso eu já tenho essa classe…
tenho a classe cliente seguida das classes clientePF e clientePJ que herdam de cliente…
então dentro do DAO da locação eu criaria um atributo do tipo cliente?
erico_kl
Se os dois tipos de clientes irão locar, sim. Veja que o que importa no seu caso é gravar o cliente correto na locação (que provavelmente é identificado por um ID), sendo assim não importa se é ClientePJ ou ClientePF, o que importa é que seja um Cliente, e isso tanto o ClientePJ quanto o ClientePF são.
victorrgds
cara, eu até entendi a idéia…mas não to sabendo como vo implementar isso…sinceramente.
pq por exemplo a parte de consulta no DAO, na minha interface eu pesquiso o cliente e o veiculo, depois de selecionar os 2 em JTables separados eu clico no botão efetuar locação…a pesquisa do cliente e veiculo ficaria +/- assim?
//Pesquisa veiculospublicList<Locacao>pesquisar(StringbuscaText){ArrayListresultadoPesquisa=newArrayList<Veiculos>();StringsqlSelect="SELECT * FROM veiculo WHERE nome LIKE '%"+buscaText+"%'";PreparedStatementstm=null;ResultSetrs=null;Connectionconn=null;try{AcessoBDbd=newAcessoBD();conn=bd.obtemConexao();stm=conn.prepareStatement(sqlSelect);rs=stm.executeQuery();while(rs.next()){Veiculosrsc=newVeiculos(rs.getInt("idVeiculo"),rs.getString("nome"),rs.getString("grupo"),rs.getString("modelo"),rs.getString("placa"),rs.getString("chassi"),rs.getString("ar"),rs.getString("cadeira"),rs.getString("gps"));resultadoPesquisa.add(rsc);}returnresultadoPesquisa;}catch(Exceptione){e.printStackTrace();returnresultadoPesquisa;}finally{if(stm!=null){try{stm.close();}catch(SQLExceptione1){System.out.print(e1.getStackTrace());}}}}
e só altero onde estiver veiculo pra “locação” ou não altero? deixo veiculo mesmo? ai que vem a pergunta…pode ser uma duvida imbecil, mas não consegui entender 100% isso…
abs
ViniGodoy
Por favor, ao postar tópicos, dê um título descritivo.
O título que você deu, além de não ajudar nada a quem lê a lista de tópicos, não fala mais do que o óbvio. Se você não tivesse uma dúvida (cruel ou não), você sequer abriria o tópico, certo?
victorrgds
ViniGodoy:
Por favor, ao postar tópicos, dê um título descritivo.
O título que você deu, além de não ajudar nada a quem lê a lista de tópicos, não fala mais do que o óbvio. Se você não tivesse uma dúvida (cruel ou não), você sequer abriria o tópico, certo?
ok, alterado!
erico_kl
Confesso que não entendi o que você está tentando fazer… Vocẽ tem o seguinte método:
publicList<Locacao>pesquisar(StringbuscaText)
mas nele você retorna uma lista de Veiculos… Primeiro defina se este método vai retornar locações ou veículos
Não confunda a responsabilidade de cada DAO… Supondo que você tenha uma DAO para Veiculo e outra para Locacao, deixe que cada uma faça os seus CRUDs… Não tem porquê uma DAO de Veiculo carregar uma lista de locações e vice-versa
O seu problema é simples de resolver. Coloque um objeto Cliente (veja que não é nem ClientePF nem ClientePJ, é um Cliente) na tua classe Locacao e trabalhe com este objeto… Se possível, defina a classe Cliente como sendo abstrata para evitar que exista um Cliente que não seja ClientePF ou ClientePJ.