Swing com DAO (MVC)  XML
Índice dos Fóruns » Metodologias de Desenvolvimento e Testes de Software
Autor Mensagem
rodrigowPJ
Thread.start()
[Avatar]

Membro desde: 04/03/2005 00:00:00
Mensagens: 45
Localização: 228902528
Offline

Oi, sou eu de novo...

fiz o swing funfar com DAO, FactoryDAO, VO....

mas o seguinte:
Como vou fazer com a conexão?
1ª Forma: Pego a conexão pela classe que tem o método main() e fico passando por referência para os meus métodos de inserir, alterar, exluir... de cada BD;
2ª Forma: Declaro uma variável static do tipo Connection na Classe que tem o main() e pego em cada método de inserir, alterar, excluir... MainClass.VarStatic;

o que é melhor? ou pior? Alguém já fez isso?

Att, Rodrigo
[WWW] [ICQ]
pcalcadoPJ
JavaEvangelist
[Avatar]

Membro desde: 17/08/2004 00:00:00
Mensagens: 335
Localização: 111093865
Offline

Olá,

1 - Por que você está usando VO/TO/DTO?

Usando DAOs, instancie eles, talvez com uma Factory, em cada uso.

http://www.fragmental.com.br
[WWW] aim icon [ICQ]
matheusPJ
GUJ Hacker
[Avatar]

Membro desde: 23/03/2003 00:00:00
Mensagens: 6928
Offline

Rodrigo, da uma olhada nesse link, tem exemplo de factory em DAO pra resolver esse teu problema de uma forma legal

http://java.sun.com/blueprints/corej2eepatterns/Patterns/DataAccessObject.html

http://www.portaljava.com
[WWW] aim icon [ICQ]
rodrigowPJ
Thread.start()
[Avatar]

Membro desde: 04/03/2005 00:00:00
Mensagens: 45
Localização: 228902528
Offline

Matheus já fiz como está no http://java.sun.com/blueprints/corej2eepatterns/Patterns/DataAccessObject.html.
Tu já tinha me dito isto e também eu já conhecia este... mas como estou adaptando para swing... não sei como fazer com a conexão. Cheguei nestes dois exemplos que falei lá em cima...

Não tenho um web conteiner para ficar pegando conexões...

então eu faço uma vez a conexão e passo pros métodos...
ou crio uma varável estática e chama ela no método atravéz do classe principal...


estou com dúvidas sobre isto...
[WWW] [ICQ]
matheusPJ
GUJ Hacker
[Avatar]

Membro desde: 23/03/2003 00:00:00
Mensagens: 6928
Offline

e tu notou esses exemplos no link?

CloudscapeDAOFactory


CloudscapeCustomerDAO


note este comentário no CloudscapeCustomerDAO: :grin:


http://www.portaljava.com
[WWW] aim icon [ICQ]
rodrigowPJ
Thread.start()
[Avatar]

Membro desde: 04/03/2005 00:00:00
Mensagens: 45
Localização: 228902528
Offline

Sim, exatamente como está desctito. A minha DAOFactory é abstrata.



Só mudei o nome das classes e dos métodos.


Mas note que ali (j2ee) existe um web conteiner que gerencia tuas conexões ao BD, certo? Mas numa máquina local não preciso ficar fazendo conexões a torto e a direito. Somente uma conexão quando o kara faz login e desconexão quando fecha o programa... :sad:

Rodrigo
[WWW] [ICQ]
matheusPJ
GUJ Hacker
[Avatar]

Membro desde: 23/03/2003 00:00:00
Mensagens: 6928
Offline

vc deve estar se referindo a isso:



tu pode renomear ele pra getConnection(), e conectar ao banco como esta fazendo por ele, e retornar esta conexão dele, é a unica alteração...

http://www.portaljava.com
[WWW] aim icon [ICQ]
rodrigowPJ
Thread.start()
[Avatar]

Membro desde: 04/03/2005 00:00:00
Mensagens: 45
Localização: 228902528
Offline

matheus wrote:
tu pode renomear ele pra getConnection(), e conectar ao banco como esta fazendo por ele, e retornar esta conexão dele, é a unica alteração...


Sim. Blz. Mas quando vou usar, por exemplo, a MySQLDAOFactory recebe uma variável estática Connection. Então a minha MySQLClienteDAO, que é a classe que eu faço os insert(), update(), pega MySQLDAOFactory.VariavelStatica e tenho a conexão.

Isto esta certo fazer assim?

Achei que ficou bom... e minhas classes de swing não saber nada de Connection.... só precisam saber qual a factory...

Que se acha?

Rodrigo

P.S.: Obrigado até agora pela atenção...
[WWW] [ICQ]
matheusPJ
GUJ Hacker
[Avatar]

Membro desde: 23/03/2003 00:00:00
Mensagens: 6928
Offline

bem.. veja só, vamos analisar.. hehehe, nesse pattern, se tu usar um pool, qual é o lance.... é tu recuperar uma conexão antes de fazer uma consulta/insert oq for, e logo q fazer tu libera a conexão... certo? esse é um dos princípios de se usar pool.... ok, agora, se tu usar uma conexão fixa com o banco, no getConnection vai te retornar a mesma referencia pra todos os DAOs, isso pq tu nao tem um pool pra gerenciar tuas conexões... bem, não sei se é a melhor maneira de se fazer qnd tu tem uma única conexão statica... mas ao meu ver esta legal..

http://www.portaljava.com
[WWW] aim icon [ICQ]
 
Índice dos Fóruns » Metodologias de Desenvolvimento e Testes de Software
Ir para:   
Powered by JForum 2.1.8 © JForum Team