Duvida em sistema para autenticacao

Pessoal,
Sou iniciante em Java. Estou fazendo uma aplicacao bem basica para validar o username e password (com JSP). Criei uma classe chamada ConnectDB, a qual serah responsavel por conectar e desconectar do banco (Oracle). E criei outra classe chamada HandleDB que serah responsavel pelas interacoes com o banco (update, delete, add, search).

Bom, a minha duvida eh: como eu faco para “aproveitar” a conexao que foi estabelecida atraves da classe ConnectDB? Como eh que faco para “dizer” para a classe HandleDB que ja existe uma instancia da ConnectDB conectada ao banco?

Desculpem a ignorancia e obrigado desde ja.

Soh para ter uma ideia da estrutura:

public class ConnectDB {
Connection connection;
public String connectdb()

public class HandleDB {
public boolean validateUser (String username,
String password)

Complementando: os exemplos que tenho visto por aih incluem a conexao do banco no mesmo classe/metodo que realizam as pesquisas no banco.
Pergunto: eh este o jeito correto de fazer? A minha impressao eh que o correto seria ter uma classe/metodo soh para fazer a conexao, a qual poderia ser compartilhada com qualquer outra classe. Obrigado.

[quote=pabhb]Complementando: os exemplos que tenho visto por aih incluem a conexao do banco no mesmo classe/metodo que realizam as pesquisas no banco.
Pergunto: eh este o jeito correto de fazer? A minha impressao eh que o correto seria ter uma classe/metodo soh para fazer a conexao, a qual poderia ser compartilhada com qualquer outra classe. Obrigado.[/quote]

Oi!

Compartilho do mesmo pensamento, pois é isso que a POO propõe. Mas também nada impede que o método responsavél pelo gerenciamento da conexão esteja no seu DAO, entretanto, se queres tratar corretamente as funções de conexão você terá mais do que um único metodo responsavél simplesmente por “pegar a conexão”, por isso acho interessante a criação de uma classe com os devidos métodos.

Sobre o seu primeio questionamento:

[quote=pabhb]Pessoal,
Sou iniciante em Java. Estou fazendo uma aplicacao bem basica para validar o username e password (com JSP). Criei uma classe chamada ConnectDB, a qual serah responsavel por conectar e desconectar do banco (Oracle). E criei outra classe chamada HandleDB que serah responsavel pelas interacoes com o banco (update, delete, add, search).

Bom, a minha duvida eh: como eu faco para “aproveitar” a conexao que foi estabelecida atraves da classe ConnectDB? Como eh que faco para “dizer” para a classe HandleDB que ja existe uma instancia da ConnectDB conectada ao banco? [/quote]

Existe um Pattern chamado Singleton, em que evita que você tenha de ficar abrindo a conexão ao banco sempre que precisar dela. O Singleton utiliza o modificador synchronized, tornando o método thread safe. Entretanto, enfrenta forte críticas esse padrão, principalmente quando relacionado a JDBC. A partir do JEE 6, há o CDI. É através de anotações e permite que a responsabilidade do gerenciamento da conexão com o banco fique toda sobre o container ou AS que você utiliza. Isso não é só feito no JEE 6, tanto é verdade, que o JBoss 4.2.x já possui o recurso.

A questão principal aqui é que o Singleton supri sua necessidade, mas aconselho a pesquisar sobre Pool de Conexões, aqui tem um exemplo de como utilizar isso no Tomcat.

Bom, sucesso e bons estudos.
Abraços.

Magnifica resposta! Era exatamente isto que eu estava procurando. Com certeza irei pesquisar sobre Singleton e Pool de Conexões.

Muito obrigado e abracos!