Jdbc

Eu tenho essa classe, que na minha ideia, deveria conectar ao banco:

[code]
public class BD_Cds
{
public void ControlaBancoDados()
{
Connection con = null;
try
{
Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);

  con = DriverManager.getConnection(
      "jdbc:odbc:ListaCdsPJ",
      "", //nome do usuario
      ""); //senha
}
catch (SQLException e)
{
  e.printStackTrace();
}
catch (ClassNotFoundException cnfe)
{
  System.out.println("Nao foi encontrado o driver do Banco.");
}

}[/code]
E queria q essa classe ficasse soh pra fazer isso, e as outras pudessem usar o “con” pra criar o Statement , mas como faço isso…???
E se pudessem colocar um exemplo, uma nova classe com um novo metodo, eh q ai q estah a minha duvida… e q naum consigo passar a diante…
PS: essa duvida eh aki ou devo tirar esse tipo de duvida no java basico… valeu… e bom final de fim de semanha :smiley: :frowning:
PS:E se tiverem uma opçao melhor da minha primeira classe eu ficaria mto grato…

Olha, existem maneiras muito melhores de se gerenciar conexções como banco, mais acho que você está querendo algo simples errei?

public interface ConnectionProvider{ public Connection getConnection() throws Exception; }

[code]public class DirectConnection implements ConnectionProvider {
static {
try {
Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
} catch (ClassNotFoundException e) {
System.err.println(“Erro registrando o driver, não é possivel recuperar uma conexão”);
}
}

public Connection getConnection() throws Exception {
return DriverManager.getConnection(“jdbc:odbc:ListaCdsPJ”, “”, “”);
}
}[/code]

public class ConnectionProviderFactory{ public static ConnectionProvider getConnectionProvider(){ return new DirectConnection(); } }

para utilizar tudo isso em suas classes use:

... ConnectionProvider conProvider = ConnectionProviderFactory.getConnectionProvider(); Connection con = conProvider.getConnection(); ...

Deixe sempre a excessão estourar para a camada mais alta da aplicação, é mais fácil de gerenciá-las e o stackTrace fica mais completo.

Seguindo esse exemplo você pode substituir o provedor de conexões sem precisar alterar seu código, eu aconselho você dar uma olhada no c3p0 que é um pool de conexões muito fácil de se configurar.

Qualquer coisa, dá um toque.

Valeu mesmo as dicas e os exemplos, vou tentar executar.
Eu vou tentar estudar sua dica, q faz parte do hibernate, correto?
E queria saber se alguem sabe um tutorial massa pra aprender “interface”, e q naum sei usar ainda…
E mto obrigado pela resposta!!!

Meio off… porém nunca se esqueca de fechar estas conexoes…

Desto modo é muito fácil conectar um monte de coisa no banco e deixar ele sobrecarregado… crie nesta classe da conexao um metodo para fechá-la…

:stuck_out_tongue:

Eu estava pensando em cada vez q usa-se o banco eu fecharia em seguida…
Por isso queria essa classe… pra cada vez q fosse acessar o banco eu conectaria…
Estah certo o meu pensamento???

Sim, a classe do Volnei está te retornando uma conexão…

use-a, e feche-a!

[quote=hicans]Eu vou tentar estudar sua dica, q faz parte do hibernate, correto?
E queria saber se alguem sabe um tutorial massa pra aprender “interface”, e q naum sei usar ainda…
E mto obrigado pela resposta!!![/quote]

Nada a ver com Hibernate! É um pool de conexões independente.

Quanto a aprender sobre interface, qualquer livro de OO tem e o Google tambem.

:wink:

Valeu galera…