É o Seguinte pessoal…
estou desenvolvimento um pequeno sistema em Swing e me deparei com o seguinte problema… da um certo momento eu preciso fazer um consulta SELECT no banco por ex. dos fornecedores só que assim que eu faço esse select eu fecho a conexão com o banco, mas neste caso eu preciso manter essa conexão aberta pois vou manipular algumas informações sobre este fornecedor de exemplo, ou seja tenho q trancar este registro para ninguém mais ter acesso a ele, descobri q eu posso usar o no Mysql o SELECT * FROM
Então, seu DAO esta com muita responsabilidade, ele não deveria ser o responsável por abrir e fechar a conexão, e sim receber ela no construtor por exemplo (injeção de dependencia).
Dessa forma, vc pode controlar melhor sua conexão, mantendo ela aberta por mais tempo.
Seria fazer assim???
[...]
try {
Connection conn = New ConnectionFactoty();
fornecedoresdao = new ImpFornecedoresDAO(conn);
fornecedor = fornecedoresdao.procurarFornecedores(fornecedor.getCodigo());
conn.close();
} catch (Exception ex) {
Logger.getLogger(frmCadClientes.class.getName()).log(Level.SEVERE, null, ex);
}
[...]
Sim, assim vc tem mais cotrole e seu DAO não tanta responsabilidade
Agora para ficar melhor ainda, só falta colocar algum framework de ioc (tipo spring) ai, que ele gerencia a criação de objetos para vc… usando spring vc tera ajuda ateh para controlar a transação.
Mas eu consigo documentação em português pra esse assunto…??
eu fico meio perdido java tem tando framework… e eu vou lembrar to usando Swing.
Ix cara, para qualquer framework vc vai precisar entender um pouco de inglês, até tem material em português, mas vc com certeza vai chegar em um ponto que precisa conhecer e pesquisar em docs em inglês.
Segue alguns frameworks de ioc que você pode usar
Spring - http://static.springsource.org/spring/docs/2.5.x/reference/
Pico - Container http://www.picocontainer.org/introduction.html
Guice - http://code.google.com/p/google-guice/
A e isso é independente se você esta fazendo um sistema desktop ou web
Achou que vou de Spring mesmo… é o que to mais vendo falar sobre ele na internet… quanto ao inglês… até entendo alguma coisa… mas meu português é bem melhor hehehehe…(vou correr atraz disto…). vlw amigo pela ajuda… obrigado!