Oi pessoal,

algum tempo atr�s o Marcel envio um e-mail para lista com dicas para separar
a parte de persist�ncia, e no momento estou tentando implementar uma classe
que fa�a isso. Gostaria de saber se algu�m tem outros exemplos ou
informa��es de como implementar isso.


----- Original Message -----
From: "Marcel Efraim Sakamoto" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, June 08, 2001 18:23
Subject: RES: [java-list] D�vida sobre Statements com Servlets


> Carlos,
>
> antes de mais nada, se eu fosse voc� colocaria toda a l�gica de conex�o e
> demais opera��es com bancos de dados numa outra classe, ou seja, fora do
> servlet. Isso vai lhe ajudar bastante, principalmente na hora de dar
> manuten��o.
>
> Se voc� fizer isso, a parte que abre a conex�o com o banco de dados
poderia
> ficar no construtor dessa classe, por exemplo. Depois, voc� pode criar um
> m�todo que execute seu Statement utilizando a conex�o que foi aberta
(logo,
> o objeto Connection deve ser um atributo - de prefer�ncia privado - dessa
> classe).
>
> Por exemplo:
> package <seu pacote>;
>
> import java.sql.Connection;
> import java.sql.Statement;
> import java.sql.ResultSet;
>
> public class DBAccess {
>
> private static final String DRIVER = <driver do seu banco de dados>;
> private static final String URL = <url para acessar as tabelas>;
> private Connection conn;
>
> public DBAccess() {
> // Registra o driver
>             Class.forName(DRIVER).newInstance();
> // Abre a conex�o com o banco de dados
>             conn = DriverManager.getConnection(URL);
> }
>
> public <seu retorno> getX() {
> String query = <sua query>;
>
> ResultSet rs = null;
>   Statement stmt = null;
> try {
> stmt = this.conn.createStatement();
>     rs = stmt.executeQuery(query);
>
> return <o objeto que voc� quiser>;
>     } catch(Exception e) {
>             // Tratamento da exce��o
> } finally {
> try {
> if (rs != null) {
> rs.close();
> }
>
> if (stmt != null) {
> stmt.close();
> }
> } catch (Exception ignored) {
> // N�o tem problema se n�o conseguiu fechar o statement
> } finally {
> rs = null;
> stms  null;
> }
> }
> }
> }
>
> A� ent�o, no servlet, quando voc� quiser obter executar alguma query,
basta
> criar uma inst�ncia dessa classe e chamar o m�todo correto. Mas n�o se
> esque�a de criar um m�todo que feche a conex�o. � melhor que seja num
m�todo
> separado (ao inv�s de colocar no pr�prio m�todo que executa a query)
porque
> se voc� for fazer outra opera��o com o banco de dados, n�o � necess�rio
> criar uma nova conex�o, voc� pode aproveitar a que est� aberta.
>
> Como voc� p�de perceber isso n�o tem nada a ver com servlets.
>
> Espero que lhe seja �til.
>
> Marcel.
>
> -----Mensagem original-----
> De: Carlos Campos [mailto:[EMAIL PROTECTED]]
> Enviada em: sexta-feira, 8 de junho de 2001 12:50
> Para: '[EMAIL PROTECTED]'
> Assunto: RES: [java-list] D�vida sobre Statements com Servlets
>
>
> Oi Eduardo,
>
> Primeiramente agrade�o pela resposta, mas s� pra FECHAR:
>
> - Abre-se sempre a conex�o no m�todo init() e abre-se sempre o statement
no
> m�todo service(), CORRETO ???
>
> []'s
>
> Carlos Campos
>
> > ----- Mensagem original -----
> > De: Eduardo de S. Bernardino [SMTP:[EMAIL PROTECTED]]
> > Enviada em: Sexta-feira, 8 de Junho de 2001 11:05
> > Para: [EMAIL PROTECTED]
> > Assunto: Re: [java-list] D�vida sobre Statements com Servlets
> >
> > Respondendo �s d�vidas, segundo o pouco que conhe�o. N�o sei se � a
melhor
> > solu��o, mas ai vai:
> >
> > 1 - )  A conex�o se for do tipo static ser� acessada por todas as
> > inst�ncias
> > do servlet. Ou seja voc� e outro carinha que acessarem o mesmo servlet
de
> > m�quinas diferentes utilizar�o a mesma conex�o. Para conectar com o
banco
> > de
> > dados, o ideal � no construtor ou no m�todo init() mesmo.
> >
> > 2 - ) Abra os statements sempre antes da execu��o do comando SQL e
feche-o
> > ap�s a conclus�o ou obten��o de dados do resultset.
> >
> > 3 - ) Acesso simult�neo � complicado, deve-se utilizar pool de conex�es
> > para
> > evitar erros no acesso simult�neo. Tente encontrar exemplos nos sites de
> > servlets dispon�veis na net:
> >
> > www.servlets.com
> > www.coolservlets.com
> >
> > Agora n�o sei se � poss�vel acesso concorrente com o Access. Ele n�o �
um
> > banco muito indicado para aplica��es com servlets. Tente buscar alguma
> > documenta��o a respeito disto. Quem sabe...
> >
> > Abra�os
> > Eduardo
> > eCorp
> > [EMAIL PROTECTED]
> >
> >
> > ----- Original Message -----
> > From: "Carlos Campos" <[EMAIL PROTECTED]>
> > To: "'Lista SouJava'" <[EMAIL PROTECTED]>
> > Sent: Friday, June 08, 2001 10:11 AM
> > Subject: [java-list] D�vida sobre Statements com Servlets
> >
> >
> > Prezados Javaneses,
> >
> > Apenas a t�tulo de ratifica��o gostaria de confirmar o seguinte
> > procedimento
> > no uso de Servlets:
> >
> > 1.) Deve-se abrir a conex�o com o Banco de Dados no m�todo Init():
> >      con1  = DriverManager.getConnection(url1,"","");
> >      checkForWarning(con1.getWarnings());
> >
> > 2.) Deve-se abrir os Statements SEMPRE no m�todo Service() de modo a
> > evitar
> > a colis�o com as m�ltiplas conex�es ?
> >     stmt1 = con1.createStatement();
> >     checkForWarning(con1.getWarnings());
> >
> > Esta d�vida surgiu quando testei o acesso simultaneo com v�rios usu�rios
> > num
> > Banco MS Access 97 e o driver ODBC gerava os seguintes erros de SQL (Sql
> > Exception) : "General Error" ou "Erro de Sequ�ncia de Fun��o";
> >
> > O problema seria uma limita��o do MS Access em acessar simultaneamente o
> > mesmo registro por v�rios usu�rios, mesmo por um simples SELECT atrav�s
da
> > ponte JDBC-ODBC ???
> >
> > Estranhamente isto n�o ocorre quando se usa um programa C/S em Visual
> > Basic.
> > Seria uma defici�ncia da ponte JDBC-ODBC ???
> >
> > Sei que no uso de la�os WHILE, por exemplo, temos que abrir um Statement
> > para cada ResultSet acionado, mas gostaria de confirmar este conceito
> > sobre
> > ONDE abrir corretamente os Statements de modo a obter o m�ximo de
> > performance do Servlet independente das limita��es do Banco de Dados,
ok?
> >
> > Agrade�o pelos coment�rios,
> >
> > []'s
> >
> > Carlos Campos
> > Analista de Sistemas / Bolsista PCI
> > [EMAIL PROTECTED]
> > MCT / CETEM - Centro de Tecnologia Mineral
> > Fone: 0xx21 3865-7358
> > Fax :  0xx21 290-9196
> >
> >
> > ------------------------------ LISTA
SOUJAVA ----------------------------
> > http://www.soujava.org.br  -  Sociedade de Usu�rios Java da Sucesu-SP
> > d�vidas mais comuns: http://www.soujava.org.br/faq.htm
> > regras da lista: http://www.soujava.org.br/regras.htm
> > para sair da lista: envie email para
[EMAIL PROTECTED]
>
> -------------------------------------------------------------------------
> >
> >
> >
> >
> > ------------------------------ LISTA
SOUJAVA ----------------------------
> > http://www.soujava.org.br  -  Sociedade de Usu�rios Java da Sucesu-SP
> > d�vidas mais comuns: http://www.soujava.org.br/faq.htm
> > regras da lista: http://www.soujava.org.br/regras.htm
> > para sair da lista: envie email para
[EMAIL PROTECTED]
>
> -------------------------------------------------------------------------
>
> ------------------------------ LISTA SOUJAVA ----------------------------
> http://www.soujava.org.br  -  Sociedade de Usu�rios Java da Sucesu-SP
> d�vidas mais comuns: http://www.soujava.org.br/faq.htm
> regras da lista: http://www.soujava.org.br/regras.htm
> para sair da lista: envie email para [EMAIL PROTECTED]
> -------------------------------------------------------------------------
>
>
> ------------------------------ LISTA SOUJAVA ----------------------------
> http://www.soujava.org.br  -  Sociedade de Usu�rios Java da Sucesu-SP
> d�vidas mais comuns: http://www.soujava.org.br/faq.htm
> regras da lista: http://www.soujava.org.br/regras.htm
> para sair da lista: envie email para [EMAIL PROTECTED]
> -------------------------------------------------------------------------
>


------------------------------ LISTA SOUJAVA ---------------------------- 
http://www.soujava.org.br  -  Sociedade de Usu�rios Java da Sucesu-SP 
d�vidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED] 
-------------------------------------------------------------------------

Responder a