O que acham do meu código com DAO??  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
dina
JavaEvangelist

Membro desde: 14/01/2007 11:46:45
Mensagens: 356
Localização: Mogi das Cruzes - SP
Offline

Olá pessoal!

Tudo certo?
Gostaria de saber o que acham do meu código em DAO...
Se está conforme as "convenções", etc..

Gostaria de dizer que estou fazendo em netbeans e é só um teste para "treinar"... portanto nada de WEB..

Segue os códigos das minhas classes, quem puder dar uma olhada ficarei muito grata..

1. Classe: AutorDAO



2. Classe: Autor


3. Classe: AutorModel


Está rodando sem problemas, gostaria apenas de saber se a forma que fiz é uma considerada uma boa forma, e caso não seja, gostaria de saber o motivo...
Estou treinando isso para poder fazer/aplicar essas técnicas em um sistema maior do meu TCC...


Agradeço desde já,
Dina
Marky.Vasconcelos
Moderador
[Avatar]

Membro desde: 11/04/2007 18:18:20
Mensagens: 5847
Localização: São Paulo/SP
Offline

Está conforme os padrões.

Mas agora que já sabe como fazer isso voce pode usar um framework de persistencia como o hibernate e fazer apenas um DAO generico, pois do seu modo a cada model voce precisa criar um novo DAO.

Facebook @MarkyHitchhiker +Mark WP: MarkyTech's

Projects:
Android Roadmap - Aprenda Android do inicio (Java é o unico pre-requisito)
Towel ( ObjectTableModel & Swing & Utils )
Tower Defense Game - Java2D [Open-Source] [How-to-play]
Ponto V! - Desenvolvimento de jogos para indies, curiosos e profissionais

DefaultTableModel?! PARE! Não faça isso! Faça melhor!

Dicas: Faça perguntas inteligentes! ; MigLayout ; GridBagLayout (Joke)

Develop games is fantastic, with words you can make worlds!!!

DON'T PANIC!
MarkyHitchhiker's Blog!
[WWW] [MSN]
rogelgarcia
GUJ Master
[Avatar]

Membro desde: 21/06/2007 23:27:21
Mensagens: 1838
Offline

É Melhor renomear o AutorModel para Autor..

E a classe Autor chamar de AutorFrame, ou algo assim..

Fica seguindo mais o padrão dessa forma...

Mas é desse jeito que voce fez mesmo... ficou muito bom (nao li o código do frame profundamente... )

This message was edited 1 time. Last update was at 16/03/2010 13:48:38


Rógel Garcia, criador do framework NEXT

http://www.nextframework.org
dina
JavaEvangelist

Membro desde: 14/01/2007 11:46:45
Mensagens: 356
Localização: Mogi das Cruzes - SP
Offline

Mark_Ameba wrote:Está conforme os padrões.

Mas agora que já sabe como fazer isso voce pode usar um framework de persistencia como o hibernate e fazer apenas um DAO generico, pois do seu modo a cada model voce precisa criar um novo DAO.


Mark, vamos lá..
1. Framework de persistência??
2. DAO genérico?

Realmente achei que para cada model teria que fazer um DAO.

3. DAO genérico seria por exemplo, um DAO onde teria conexão ao BD, o fechamento da conexão, onde todos os outros DAO's "herdariam" este DAO genérico??

O meu sistema que farei para o meu TCC será DESKTOP..
4. Por ser Desktop muda algo?

5. Outra coisa, eu acabei chamando todos os métodos da DAO da minha classe Autor e não da classe Autor (onde tem a view e o tratamento dos botões), algum problema com isso?

Obrigada por analisar o meu código, e desculpa por esse tantão de perguntas...
Valeu mesmo...!
Dina

Editado: Correção de onde foram chamados os métodos da DAO

This message was edited 1 time. Last update was at 16/03/2010 13:56:16

rogelgarcia
GUJ Master
[Avatar]

Membro desde: 21/06/2007 23:27:21
Mensagens: 1838
Offline

Sobre práticas de programação... pra ficar perfeito....

No seu DAO os métodos deveriam ter um finally para garantir o fechamento da conexão caso ocorra alguma exceçao...


This message was edited 1 time. Last update was at 16/03/2010 13:55:05


Rógel Garcia, criador do framework NEXT

http://www.nextframework.org
dina
JavaEvangelist

Membro desde: 14/01/2007 11:46:45
Mensagens: 356
Localização: Mogi das Cruzes - SP
Offline

rogelgarcia wrote:É Melhor renomear o AutorModel para Autor..

E a classe Autor chamar de AutorFrame, ou algo assim..

Fica seguindo mais o padrão dessa forma...

Mas é desse jeito que voce fez mesmo... ficou muito bom (nao li o código do frame profundamente... )


Oiee..
Então, segui o que vc tinha me respondido no post anterior..
Só que quando vi, como falei no meu post anterior, acabei chamando todos os meus métodos DAO pelo Autor (ou, como vc sugeriu AutorFrame)

Errado?

This message was edited 1 time. Last update was at 16/03/2010 13:56:56

rogelgarcia
GUJ Master
[Avatar]

Membro desde: 21/06/2007 23:27:21
Mensagens: 1838
Offline

dina wrote:
rogelgarcia wrote:É Melhor renomear o AutorModel para Autor..

E a classe Autor chamar de AutorFrame, ou algo assim..

Fica seguindo mais o padrão dessa forma...

Mas é desse jeito que voce fez mesmo... ficou muito bom (nao li o código do frame profundamente... )


Oiee..
Então, segui o que vc tinha me respondido no post anterior..
Só que quando vi, como falei no meu post anterior, acabei chamando todos os meus métodos DAO pelo Autor (ou, como vc sugeriu AutorFrame)


Sim... ficou certo o que vc fez.. eu só sugeri um rename nas classes...
As classes de modelo geralmente nao tem prefixo nem sufixo.. então o AutorModel deveria se chamar só Autor

E a que é chamada Autor atualmente.. voce coloca um sufixo.. como AutorFrame

Rógel Garcia, criador do framework NEXT

http://www.nextframework.org
dina
JavaEvangelist

Membro desde: 14/01/2007 11:46:45
Mensagens: 356
Localização: Mogi das Cruzes - SP
Offline

rogelgarcia wrote:Sobre práticas de programação... pra ficar perfeito....

No seu DAO os métodos deveriam ter um finally para garantir o fechamento da conexão caso ocorra alguma exceçao...

Eba! Isso que eu quero, saber o que tem que mudar pra ficar melhor.. obrigada!

Mas Rogel, pelo que tinhamos falado em um outro tópico sobre onde chamar os métodos DAO, acho que não segui o que foi sugerido, ou segui?? Gostaria de saber se está OK...

Valeu pelas dicas e pela ajuda...
rogelgarcia
GUJ Master
[Avatar]

Membro desde: 21/06/2007 23:27:21
Mensagens: 1838
Offline

Seguiu...

Só o nome das classes mesmo.. que ficaria melhor trocar...

AutorModel -> Autor

Autor -> AutorFrame

O netbeans deve ter algum menu aí .. um Refactor > Rename (no eclipse tem.. nao sei como é no netbean)

Que troca todas as referencias ao nome da classe... assim vc nao tem que procurar todas as ocorrencias...

Rógel Garcia, criador do framework NEXT

http://www.nextframework.org
rogelgarcia
GUJ Master
[Avatar]

Membro desde: 21/06/2007 23:27:21
Mensagens: 1838
Offline

Um exemplo de framework de persistencia é o Hibernate

Um framework é uma ferramenta para auxiliar na realização de algum trabalho...

O Hibernate por exemplo.. mapeia classes em tabelas.. e atributos em colunas do banco de dados..

Assim voce nao precisa escrever código para cada atributo que deseja mapear... o hibernate faz esse trabalho...


Sobre o DAO genérico... voce consegue aproveitar mais do que apenas a conexão...

Voce chegou a ver o video do crud que te mandei?? o DAO lá.. nao tem nenhum código.. (ele extende apenas um DAO genérico... esse é um DAO beeeem genérico)

Rógel Garcia, criador do framework NEXT

http://www.nextframework.org
dina
JavaEvangelist

Membro desde: 14/01/2007 11:46:45
Mensagens: 356
Localização: Mogi das Cruzes - SP
Offline

Alteração realizada!!


Rogel, não querendo abusar, mas já abusando, esse DAO genérico que o Mark sugeriu seria aquilo que falamos em um tópico anterior, onde tenho um DAO "mãe" para conectar/desconectar ao BD...?
rogelgarcia
GUJ Master
[Avatar]

Membro desde: 21/06/2007 23:27:21
Mensagens: 1838
Offline

Exato

Rógel Garcia, criador do framework NEXT

http://www.nextframework.org
dina
JavaEvangelist

Membro desde: 14/01/2007 11:46:45
Mensagens: 356
Localização: Mogi das Cruzes - SP
Offline

Ah simmmmmmmmm..

Agora deu uma luz..!
Consegui ligar uma coisa à outra...
Valeu mesmo pela ajuda!!!
viniciusfaleiro
Virtual Machine Man
[Avatar]

Membro desde: 22/03/2008 20:07:50
Mensagens: 523
Offline

Mark_Ameba wrote:Está conforme os padrões.

Mas agora que já sabe como fazer isso voce pode usar um framework de persistencia como o hibernate e fazer apenas um DAO generico, pois do seu modo a cada model voce precisa criar um novo DAO.


Concordo com o Mark.. más veja bem.. se por um acaso vc não utilizar um framework de persistencia eu não concordo com o fato de colocar a criação da sua Connection no DAO... cria uma factory separada pra isso acho que seria melhor.. É simples imaginar se por exemplo vc não tem um DAO genérico com Hibernate: Logo vc tem um DAO para cada model e vai criar um método getConnection() em cada model?... Se precisar dar manutenção bye bye...

Linkedin: http://www.linkedin.com/pub/vinicius-faleiro/32/697/624
dina
JavaEvangelist

Membro desde: 14/01/2007 11:46:45
Mensagens: 356
Localização: Mogi das Cruzes - SP
Offline

Vinicius, valeu por dar sua opinião..

Realmente a manutenção ficaria complicada...
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team