A sintaxe do uso dessa classe é bem simples, como a fi nalidade dessa classe é especifi camente a conexão com o banco de dados, os seus atributos se referem a dados como:
nome da fonte de dados ODBC; nome do usuário;
senha de acesso ao banco de dados.
Para que a classe DriverManager receba esses valores, é necessária a utilização do método getConnection().
Assim a sintaxe de uso do DriverManager é:
DriverManager.getConnection(nome da fonte de dados, usuário, senha);
Na qual:
Nome da Fonte de Dados: String; Nome do Usuário: String;
Senha: String;
Os nomes do usuário e da senha de acesso seguem as regras da defi nição do banco de dados. No caso do banco de dados MySQL instalado por você, seguindo as defi nições desta disciplina, possui o usuário chamado root e a senha virtual. O método getConnection() retorna sempre um atributo do tipo
connection, que pode ser fechado por meio do método close(). A
partir do momento que o banco de dados foi fechado, ele não pode mais ser manipulado, a não ser que uma nova conexão seja aberta por intermédio do getConnection().
Sempre que você encerrar a aplicação, feche o banco de dados. Os comandos do getConnection() são sempre os mesmos, o que pode mudar são os parâmetros de nome da fonte, usuário e senha. Sendo assim, a conexão com banco de dados poderia ser
representada por uma classe como:
ConexaoDB - FonteDB: char - Usuario: char - Senha: char + Conectar() : boolean + Fechar(): void + Preparar(): void
O próximo passo é montar essa classe. Para isso, abra o JCreator. Clique em File, new File. Escolha o tipo de arquivo Java File. Nomeie o arquivo como ConexaoDB, salve-o na pasta c:\DB2\ Fontes.
Edite o seguinte código:
//--Importe de pacotes import javax.swing.*; import java.sql.*;
class ConexaoDB{
private String FonteDB,Usuario,Senha; private Connection Conexao;
//-- Construtor da Classe com Parâmetros
public ConexaoDB(String _FonteDB,String _Usuario,String _Senha){ setFonte (_FonteDB);
setUsuario(_Usuario); setSenha (_Senha); }
//--Modifi cadores
public void setFonte (String _FonteDB) {FonteDB = _FonteDB;} public void setUsuario(String _Usuario) {Usuario = _Usuario;} public void setSenha (String _Senha) {Senha = _Senha;}
public void setConexao(Connection _Conexao) {Conexao = _Conexao;}
//-- Recuperadores
public String getFonte (){return FonteDB;} public String getUsuario(){return Usuario;} public String getSenha (){return Senha;} public Connection getConexao(){return Conexao;}
//-- Método para conexão com banco de dados
//-- Retorna verdadeiro oufalso para indicar se a conexão foi feita
public boolean Conectar(){ boolean sucesso = true;
String fonte = “jdbc:odbc:”+getFonte(); //-- Registro da Fonte de Dados try{
Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); // -- Conexão via ODBC setConexao(DriverManager.getConnection(fonte,getUsuario(),getSenha())); }
catch(Exception e){ sucesso = false;
}
if (sucesso)
JOptionPane.showMessageDialog(null,” Conectou com Sucesso.”); else
JOptionPane.showMessageDialog(null,” Não Conectou.”);
return sucesso;
}
//-- Método para fechar a Conexão public void Fechar(){
try{
getConexao().close(); }
catch(Exception e){
JOptionPane.showMessageDialog(null,”Problema ao Fechar o Banco. “); }
}
//-- Método para prepara o banco de dados para receber // os comandos em SQL.
public Statement PrepararComando(){ try{
return getConexao().createStatement(); }
catch (Exception e) {
JOptionPane.showMessageDialog(null,” Erro de Comando”); return null; } } }
Compile o arquivo, e caso apresente algum erro, compare o que você fez com a listagem apresentada aqui. Vale lembrar que normalmente os problemas podem estar na digitação errada ou em algum símbolo que fora esquecido. Por isso, fi que tranqüilo!
Com base nessa classe, é possível se conectar a qualquer tipo de banco de dados, desde que sejam informados a fonte de dados ODBC, a senha e o usuário do banco de dados.
Antes de apresentar mais uma classe, a classe de uso da classe ConexaoDB, vou detalhar o código anterior, para que você possa dominar a tecnologia de conexão com banco de dados em Java. Veja o quadro a seguir.
Quadro 6.3 - LINHAS DE COMANDO E SUAS FUNCIONALIDADES
Linha de comando Funcionalidade
import javax.swing.*;
Pacote em Java para os comandos derivados de JOptionPane.
Como: JOptionPane.showInputDialog e JOptionPane.
showMessageDialog.
import java.sql.*; Pacote Java para manipulação de banco de dados. class ConexaoDB Nome da classe criada deve ter o mesmo nome do arquivo em Java. private String FonteDB,Usuario,Senha;
private Connection Conexao; Atributos da classe são sempre private. public ConexaoDB(String_FonteDB,String
_Usuario,String,_Senha)
Construtor da classe ConexaoDB, recebendo como parâmetro os valores da Fonte de Dados, usuário e senha.
String fonte = “jdbc:odbc:”+getFonte();
O nome da fonte de dados em Java é identifi cada como “jdbc:odbc:” e em seguida o nome da fonte de dados que se deseja acessar.
Class.forName(“sun.jdbc.odbc. JdbcOdbcDriver”);
Carrega o driver que será usado para conexão com o Java. Nesse caso, será uma conexão via ODBC.
DriverManager.getConnection(fonte,getUs uario(),getSenha()));
Tenta fazer a conexão com o banco de dados a partir da fonte de dados, usuário e senha fornecidos.
setConexao(DriverManager.getConnection (fonte,getUsuario(),getSenha()));
O método setConexao() armazena no atributo Conexão o resultado da execução do comando getConnection. try{
}
catch(Exception e){ }
Toda a operação de banco de dados em Java,
obrigatoriamente deve ser protegida com tratamento de exceção try.. catch.
getConexao().close();
Fecha o banco de dados. O método getConexao() retorna a conexão que está aberta e o método close() fecha. Por ser uma operação de banco de dados deve ser protegida por try e catch.
return getConexao().createStatement();
O tipo de dado Statement representa as operações que podem ser executadas pelo banco de dados.
Sendo assim, o método PrepararComando mantém o banco de dados em modo de espera, aguardando que algum comando em SQL seja passado para execução.
O mais importante é que essas regras estão prontas, o que pode ser alterado é o nome da fonte de dados, nome do usuário e da senha de acesso. Estes valores são passados para classe ConexaoDB no momento em que a mesma é instanciada e a conexão ocorre na chamada do método Conectar. Portanto, não há necessidade de reescrever este código de conexão toda vez que for necessário se conectar a um banco de dados.
Lembre-se que esse código permite a conexão a qualquer tipo de banco de dados por meio da conexão via ODBC, basta que sejam informados os dados da conexão.