Oi fernando,

no caso de operações como inclusão eu consigo visualizar, mas em operações
de consulta que retornam vários valores eu não vejo como resgatar as
informações.

Ex: select * from users
depois de fazer um select eu vou trabalhando com os campos que me interessam

rs.getString("username");
rs.getString("nome_completo");

Caso eu for fazer isto por esta solução eu teria que fazer um método para
cada "tipo de get"?(get username) get nome, etc


Agradeço desde já sua atenção.



----- Original Message -----
From: "Fernando Luiz" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, August 15, 2001 17:17
Subject: Re: [java-list] Separar_a_parte_de_BD(persistência)_da_aplicação


> 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]
> -------------------------------------------------------------------------
>


------------------------------ 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