• Nenhum resultado encontrado

Como usar a classe DriverManager?

No documento Banco_de_dadosII (páginas 136-141)

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.

No documento Banco_de_dadosII (páginas 136-141)

Documentos relacionados