Sorry. Omiti esse detalhe importante.
Na verdade n�o mostrei a solu��o, mas tentei passar alguns detalhes
importantes dela, e acabei esquecendo esse.
� isso ai. Valeu, Deisimar.
----- Original Message -----
From: "Fco. Deisimar Nobre Jr." <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Monday, November 04, 2002 11:36 AM
Subject: RES: [cejug-discussao] Re: [cejug] Fw: D�vidas
> Me intrometendo aqui na sugest�o do Francisco Pinto Ara�jo J�nior....
acho que ficou faltando definir o inico da transa��o.
>
> try
> {
> con.setAutoCommit(false); // <========================
> // inicio da transa��o
> classeA.InclusaoClasseA( con );
>
> classeB.InclusaoClasseB( con );
>
> // Se chegar aqui, � por que tah tudo ok
> con.commit(); // Efetiva a transa��o
> }
> catch( Exceptio e )
>
> ===========================================
> Francisco Deisimar Nobre J�nior
> Analista de Sistemas - CIT - M. Dias Branco
> ===========================================
>
>
> -----Mensagem original-----
> De: Carlo Giovano [mailto:cgiovano@;atlantico.com.br]
> Enviada em: segunda-feira, 4 de novembro de 2002 09:17
> Para: [EMAIL PROTECTED]
> Assunto: RES: [cejug-discussao] Re: [cejug] Fw: D�vidas
>
>
> S� para que o Clairton n�o fique em d�vida nas solu��es ( a enviada por
mim e a do Pinto): Na verdade elas s�o equivalentes. A diferen�a � que vc
pode usar a minha no caso de n�o querer deixar vis�vel o pacote de acesso a
dados java.sql para classes de neg�cio e deixar isso apenas para suas
classes de dados. Imagine que um servlet, ou um fa�ade ou uma janela Swing
estejam usando suas classes A e B, nesse caso vc n�o gostaria de "pular" uma
camada e fazer esses caras se amarraram ao pacote sql. Da� a id�ia do
UserTransaction para esconder isso. No entanto, se voc� n�o tiver esse tipo
de requisitos ent�o use a solu��o do Pinto que � mais direta ao ponto.
>
> Carlo Giovano
> CEJUG
>
> -----Mensagem original-----
> De: Francisco Pinto Ara�jo J�nior [mailto:pinto@;softexport.com.br]
> Enviada em: segunda-feira, 4 de novembro de 2002 09:54
> Para: [EMAIL PROTECTED]
> Assunto: Re: [cejug-discussao] Re: [cejug] Fw: D�vidas
>
>
> Clairton,
>
> Voce podia utilizar o conceito de transa��o.
>
> A id�ia seria algo maisno menos assim:
>
> class ClassA
> {
> public void InclusaoClasseA( Connection con )
>
> throws Exception
> {
> // Aplica a tua atualiza��o em usando a conex�o passada (con)
> }
> }
>
> class ClassB
> {
> public void InclusaoClasseB( Connection con )
> throws Exception
> {
> // Aplica a tua atualiza��o em usando a conex�o passada (con)
> }
> }
>
>
> Na classe (X) que faz a opera��o desejada (Y), de incluss�o nas duas
tabelas.:
>
> class X
> {
> void Y()
> {
>
> Connection con = getConnection() // Pega de algum forma uma conex�o
>
> ClasseA classA = new ClasseA();
> ...
>
>
> ClasseB classB = new ClasseB();
> ...
>
> try
> {
> classeA.InclusaoClasseA( con );
>
> classeB.InclusaoClasseB( con );
>
> // Se chegar aqui, � por que tah tudo ok
> con.commit(); // Efetiva a transa��o
> }
> catch( Exceptio e )
> {
> // Se chegar aqui � por que alguma das 2 opora��es teve problemas
> con.rollback(); // Joga fora as opera��es realizadas.
>
> throw e; // Propaga adiante, se for o caso, a exce��o que
aconteceu
> // aqui, de modo que a aplica��o saiba que n�o foi
realizada
> // com sucesso.
> }
> }
> }
>
> Francisco Pinto Ara�jo J�nior
> Diretor de Tecnologia - Softexport Inform�tica
> Msc. Ci�ncia da Computa��o
> SCPJ2
> Fone/Fax: +55 85 458 1947
> [EMAIL PROTECTED]
> www.softexport.com.br
> ----- Original Message -----
> From: "Clairton" < <mailto:clairton@;pmenos.com.br>
[EMAIL PROTECTED]>
> To: < <mailto:discussao@;cejug.org> [EMAIL PROTECTED]>
> Sent: Monday, November 04, 2002 8:17 AM
> Subject: [cejug-discussao] Re: [cejug] Fw: D�vidas
>
>
> >
> > Caros senhores da lista:
> >
> > Tenho uma classe chamada de ClasseA, que tem o um metodo publico de
> > inclus�o chamado InclusaoClasseA, e inseri na tabela TabelaClasseA.
> > Tenho outra classe chamada de ClasseB, que tem o um metodo publico de
> > inclus�o chamado InclusaoClasseB, e inseri na tabela TabelaClasseB.
> > Ent�o a d�vida:
> > Como fa�o para encapsular os dois metodos para aproveitar a mesma
conex�o de
> > banco de dados ? Ou seja : Se eu inserir na tabela TabelaClasseA e em
> > seguida tentar inserir TabelaClasseB e na classe ClasseB der um erro no
> > m�todo InclusaoClasseB, desfazer a minha inclus�o na InclusaoClasseA.
> >
> > Agradece
> >
> > <mailto:clairton@;pmenos.com.br> [EMAIL PROTECTED]
> >