| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/11/2007 10:49:25
|
Zeed01
Virtual Machine Man
Membro desde: 27/10/2006 16:44:29
Mensagens: 668
Offline
|
Bom dia Colegas !
Meu problema é o seguinte, tenho uma aplicação swing que acessa um banco de dados MySql, até ai tudo bem.
Só que quando eu tenho a aplicação rodando em duas máquinas e faço uma alteração em algum dado em uma delas não aparece na outra máquina, a menos que eu feche a aplicação e abra de novo !
Alguem sabe o que pode estar errado ?
Pensei que o problema fosse na classe que gera a conexão com o banco... ai vai o código dessa classe:
Caso alguém possa me ajudar ficarei muito agradecido !
Abraços.
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/11/2007 10:53:48
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline
|
Se você deu este comando:
isto quer dizer que para efetivar suas alterações você precisa explicitamente dar um "commit" (ou via SQL, ou via método commit da interface Connection - veja a documentação em javadoc: commit
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/11/2007 11:01:00
|
Zeed01
Virtual Machine Man
Membro desde: 27/10/2006 16:44:29
Mensagens: 668
Offline
|
Bom dia Colegas !
thingol:
Primeiro obrigado pela resposta.
Mas infelizemente eu já estou colocando o comando de commit.
Veja o código de um método que faz atualização de uma tabela:
Obrigado !
Um abraço.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/11/2007 11:29:27
|
ronybrand
Thread.start()
Membro desde: 28/05/2003 15:54:00
Mensagens: 29
Offline
|
Você deve fechar o prepared statement e a conexão num finally, assim você garante que na na ficará preso no banco. EX:
...
} finally {
if (stp!= null) {
stp.close();
}
if (conn != null) {
conn.close();
}
}
|
Rony Brand
SCJP |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/11/2007 11:44:03
|
Zeed01
Virtual Machine Man
Membro desde: 27/10/2006 16:44:29
Mensagens: 668
Offline
|
Bom dia colegas !
ronybrand:
Concordo que colocar num finally seria mais adequado, já que garante que seja executado sempre.
Mas considerando que não está ocorrendo nenhuma exception, o que vai mudar colocar no finally ou nessa parte:
E eu tenho que fechar a conexão para todo comando enviado ao banco ? Porque ?
Obrigado.
Um abraço.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/11/2007 11:59:50
|
ronybrand
Thread.start()
Membro desde: 28/05/2003 15:54:00
Mensagens: 29
Offline
|
Você pode fechar no final de todos os comandos.
O finally é para garantir que na ocorrência de algum erro na fique nada preso no banco, que se aculumar pode excedecer o número máximo de conexões parando a aplicação além de consumir mais recursos
|
Rony Brand
SCJP |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/11/2007 13:05:20
|
Zeed01
Virtual Machine Man
Membro desde: 27/10/2006 16:44:29
Mensagens: 668
Offline
|
Boa tarde colegas !
ronybrand:
Então... eu entendi a sua sugestão do finally, mas você acha que isto vai resolver o meu problema inicial ?
Obrigado.
Um abraço.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/11/2007 14:36:47
|
Zeed01
Virtual Machine Man
Membro desde: 27/10/2006 16:44:29
Mensagens: 668
Offline
|
Boa tarde colegas !
Tentei seguir a dica de fechar a conexão após os inserts e updates, mas agora estou com outro problema.
Eu tenho a classe ConnectionFactory que deve abrir conexões.
Então nas classes que fazem a persistencia de dados eu coloco:
Só que quando eu fecho a conexão nessas classes parece que esta fechando na ConectionFactory também.
Acho que ficou confuso... mas se alguém entendeu pode me ajudar ?
Obrigado.
Um abraço.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/11/2007 15:11:35
|
ronybrand
Thread.start()
Membro desde: 28/05/2003 15:54:00
Mensagens: 29
Offline
|
quando for realizar uma nova operação abra novamente uma conexão
|
Rony Brand
SCJP |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/11/2007 15:21:16
|
Zeed01
Virtual Machine Man
Membro desde: 27/10/2006 16:44:29
Mensagens: 668
Offline
|
Boa tarde colegas !
ronybrand:
Então mas ai é que fica ruim... porque você já viu o tempo que demora para criar uma nova conexão ?
Considerando que eu estou dando o commit, faz sentido ter que fechar a conexão ?
Obrigado.
Um abraço.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/11/2007 15:54:09
|
ronybrand
Thread.start()
Membro desde: 28/05/2003 15:54:00
Mensagens: 29
Offline
|
usa connection pool, ai a conexão é reaproveitada:
dbcp
http://jakarta.apache.org/commons/dbcp/
ou ainda c3p0
|
Rony Brand
SCJP |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/11/2007 16:21:28
|
Zeed01
Virtual Machine Man
Membro desde: 27/10/2006 16:44:29
Mensagens: 668
Offline
|
ronybrand:
Se não for abusar você tem um exemplo ?
Obrigado.
Um abraço.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/11/2007 16:27:04
|
ronybrand
Thread.start()
Membro desde: 28/05/2003 15:54:00
Mensagens: 29
Offline
|
http://www.guj.com.br/posts/list/3033.java#14739
|
Rony Brand
SCJP |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/11/2007 16:47:33
|
Zeed01
Virtual Machine Man
Membro desde: 27/10/2006 16:44:29
Mensagens: 668
Offline
|
Mas como fazer isso na minha aplicação que é swing ?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/11/2007 17:24:17
|
fabim
GUJ Master
![[Avatar]](/images/avatar/d4e3e8180a65648886ff348c7a6bbff5.jpg)
Membro desde: 14/12/2006 19:30:03
Mensagens: 1268
Localização: Vitoria - Espirito Santo
Offline
|
Explique mais detalhadamente o quê vc "altera" em uma aplicação que nao "aparece" na outra.
Pode ser que o problema não esteja na conexão.
|
ειπεν αυτη ο ιησους εγω ειμι η αναστασις και η ζωη ο πιστευων εις εμε καν αποθανη ζησεται
Sun Certified Web Component Developer
Sun Certified Java Programmer
Sun Certified Java Associate
Sun Certified Business Component Developer - Em Andamento
Bacharelando em Sistemas de Informacao
 |
|
|
 |
|
|