You are on page 1of 4

15 Apr Conectando a um BD Access com Java stored in: Tutoriais and tagged: access, banco de dados, bd, conexo,

Java, odbc Eu sei que esse no o foco principal do blog, mas uma coisa que me pedem muito, ento a vai! Vamos usar um Banco de Dados Acess com ODBC para conectar com o Java. Tentarei mostrar da forma mais simples possvel. Primeiramente, crie um banco de dados no Access e salve em alguma pasta FIXA do seu projeto (um exemplo, crie uma pasta bf na pasta raiz do seu projeto). Agora abra o Painel de Controle do Windows, v em Ferramentas Administrativas -> Fonte de Dados (ODBC). Voc pode selecionar a aba Fontes de Dados do Sistema, e ento clique em Adicionar. Selecione Driver do Microsoft Access (*.mdb) e clique em Concluir, agora coloque um nome para o Alias do seu banco (esse alias serve para interligar o Java ao Banco), clique em Selecionar e escolha o caminho do banco. Pronto, agora pressione OK e pronto! Vamos ento para a melhor parte: Programao! =] Na sua classe, importe: ver cdigo imprimir?
1 import java.sql.*;

Ela que contm as classes necessrias para se conectar e manipular o banco. Agora, dentro da classe, voc pode definir uns objetos, um Connection, que manipula a conexo em si, e um Statement, que manipula o banco com querys. Assim: ver cdigo imprimir?
1 public Connection con; 2 public Statement stm;

Agora, para facilitar, crie um mtodo chamado Connectar: ver cdigo imprimir?
1 public void Conectar() 2 { 3 //JOptionPane.showMessageDialog(null, "Preparando para

iniciar a conexo com o BD;"); 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 //JOptionPane.showMessageDialog(null, "Conectado com sucesso!"); 28 } 27 } } catch (ClassNotFoundException e) { JOptionPane.showMessageDialog(null, "Impossvel carregar o Driver."); System.exit(0); } try { /* nomedobanco o nome que voc deu anteriormente ao seu alias */ con = DriverManager.getConnection("jdbc:odbc:nomedobanco"); stm = con.createStatement(); } catch (SQLException sqle) { JOptionPane.showMessageDialog(null, "Problema ao conectar!"); System.exit(0); try { /* Tenta se conectar ao Driver */ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

Voc pode descomentar as linhas que mostram uma mensagem antes de se conectar e depois, s para ver como que ! ^^ Crie tambm uma funo para desconectar, e se possvel, chame-a antes de sair do seu programa: ver cdigo imprimir?
1 public void Desconectar() 2 { 3 4 5 6 try { con.close(); }

7 8 9

catch (SQLException sqle) {

JOptionPane.showMessageDialog(null, "Problema ao desconectar!"); 10 System.exit(0); 11 12 } }

Basicamente, agora voc j pode se conectar e desconectar ao banco de dados! Excelente no? T, imagino agora que voc se perguntou: Mas como vou manipul-lo agora?! Hmm, Boa pergunta! Para manipular o Banco de Dados em si, como fazer consultas, inseres, remoes, necessrio a utilizao de SQL, portanto se voc no sabe, melhor estudar um pouco! hehehe Ento, voltando para o Java Lembra-se do objeto Statement que criamos? Ento, ele o ponto chave agora! Para executar uma query, voc usa o mtodo execute dele, assim: ver cdigo imprimir?
1 stm.execute("INSERT INTO tabela(nome, idade) VALUES('Bruno', 17)");

Porm ele NO traz retorno algum, ou seja, se voc quiser fazer uma consulta, por exemplo, tem que usar o mtodo executeQuery, que retorna um objeto ResultSet, que contm todo o resgistro retornado do banco de dados, a partir da consulta. ver cdigo imprimir?
1 try 2{ 3 4 5 6 ResultSet rs = stm.executeQuery("SELECT * FROM tabela"); while (rs.next()) { JOptionPane.showMessageDialog(null, "Nome: " + rs.getString("nome") + " - Idade: " + rs.getInt("idade")); }

7 8}

9 catch (SQLException e) 10 { 11 JOptionPane.showMessageDialog(null,"" +

e.getMessage(),"Erro",0); 12 } 13 finally 14 { 15 16 } rs.close();

O Objeto ResultSet, tem um mtodo para pegar cada tipo do banco de dados. Dentro dele vai o parmetro que o nome do campo a ser pego! Fcil? No exatamente! Isso muito bsico, no intil, mas bsico. Portanto, voc concerteza vai precisar de mais material, ento acesse este magnfico site que voc vai achar de tudo l! =D (Muito Obrigado ao ViniGodoy pela ajuda aqui! =D) Valeu, at a prximaaa!