Instanciar objetos a partir de uma consulta no BD  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
crpablo
Java Ninja
[Avatar]

Membro desde: 09/11/2007 14:48:58
Mensagens: 296
Localização: Floripa/Brazil
Offline

Bom dia galerinha...

Eu estou com um probleminha aqui...

Estou fazendo uma consulta no banco de dados da seguinte maneira:


Eu passo o nome da tabela para esse método e ele retorna uma lista com os dados da tabela. Nesta mesma classe tenho um método que retorna uma lista com todos os nomes das tabelas do meu BD, assim eu posso passar através de um laço todos os nomes das tabelas para me retornar todos os dados contidos nesse BD. Porém meu problema é o seguinte, eu preciso instanciar um novo objeto para cada tabela e assim setar esse objeto com os dados contidos na tabela. Sei que da seguinte forma é possível:


Mas eu preciso fazer isso para todas tabelas do meu BD, tipo, se o nome da tabela for USUARIO eu instancio um novo objeto da classe Usuario e seto ele com os dados da tabela, se for CLIENTE, instancio Cliente e assim em diante.

Alguém já precisou fazer isso? Alguma idéia? Sugestão?

This message was edited 1 time. Last update was at 28/12/2007 09:41:12




Pablo

[Email] [WWW] [Yahoo!] aim icon [MSN] [ICQ]
Giulliano
GUJ Master
[Avatar]

Membro desde: 14/11/2006 19:29:38
Mensagens: 1627
Localização: São Paulo
Offline

Cara eu acho q não dá pra fazer algo desse tipo...ficaria feio e fora de qq design pattern q eu conheça...

Acho q é mais fácil vc ter um DAO para cada tabela ou para cada negócio que precise persistir dados.

é legal a idéia de criar classes genéricas q trabalhem da mesma forma para qq situação...mas essa sua idéia "eu não aprovaria"...

This message was edited 1 time. Last update was at 28/12/2007 10:14:00


Oracle Certified Master, Java EE 5 Enterprise Architect
Oracle Certified Professional Java Programmer
GiuLLianO MoRRoNi




<UnTouChAbLe>
[Email] [WWW] [MSN]
cassio
GUJ Master
[Avatar]

Membro desde: 19/06/2006 08:25:28
Mensagens: 1336
Localização: Caieiras-SP
Offline

Eu acho que você vai ter que usar Reflection e ter uma boa dose de convencões na maneira como nomeia suas classes.
Dê uma pesquisada sobre Reflection.

Cássio Marques

Blog
jgbt
GUJ Master
[Avatar]

Membro desde: 04/06/2003 15:01:48
Mensagens: 1286
Localização: Porto Alegre/RS
Offline

Da para fazer com reflection, onde vc passaria o class que rertornaria e vc popularia ele de acordo.
mas o trabalho que daria não valeria a pena. mais facil usar o JDBCTemplate do spring ou algum ORM tipo hibernate.

[]´s

João Bier
Desenvolvedor Java
[Email]
peerless
GUJ Master
[Avatar]

Membro desde: 22/01/2007 14:52:26
Mensagens: 1391
Localização: Porto Alegre / RS
Offline

Cara isso é muito feio, mas da pra fazer, sim.

Talvez uma pitada de Reflection + metadados.

Mas, você pode ter muita dor de cabeça.. isso, ao contrário do que você pensa, não vai ficar um "Generico" muito interessante.

Como o amigo mais acima falou, utilize o pattern: DAO

e, veja se não é possível colocar no projeto um framework o/r, como o hibernate, por exemplo.

abçs

follow me
pitacos

"The most problems that teams face are about communication, and all the others are too." - Dan North





[MSN]
crpablo
Java Ninja
[Avatar]

Membro desde: 09/11/2007 14:48:58
Mensagens: 296
Localização: Floripa/Brazil
Offline

Valeu ae galera... Dei uma olhada no reflection, mas vou deixar pra dar uma estudada nisso depois, por enquanto vou optar pelos DAOs mesmo...

Abraço e feliz 2008 pra todos!!!!



Pablo

[Email] [WWW] [Yahoo!] aim icon [MSN] [ICQ]
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team