Exato, construa classes de acesso a dados, que fa�am
somente isso, Ex. select na tabela x, o m�todo acessa
faz o select e te retorna o resultado esperado, a
classe de regra de neg�cio � quem vai chamar esta
classe que acessa o DB passando para ela parametros e
recebendo o resultado da pesquisa ou da inclus�o
qualquer que for a opera��o.
Assim o commit ficaria na classe de negocio
controlando todo o fluxo de opera��es sql.
Sem mais
Fernando
--- Marcelo Figueiredo <[EMAIL PROTECTED]>
wrote:
> 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]>
>
=== message truncated ===
__________________________________________________
Do You Yahoo!?
Make international calls for as low as $.04/minute with Yahoo! Messenger
http://phonecard.yahoo.com/
------------------------------ 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]
-------------------------------------------------------------------------