You are on page 1of 20

Como conectar uma aplicao Java a um banco de dados Access

Veja neste artigo uma explicao passo a passo completa de como conectar uma aplicao Java a um banco de dados Access.
A necessidade de publicar este artigo surgiu levando em considerao que o aprendizado de como fazer um projeto em Java com Access se torna difcil, pois no h uma fonte com um exemplo completo. Prova disso que se procurarmos pela internet, no encontraremos nada completo, o que achamos so pedaos de cdigos espalhados que mais confundem do que explicam e perguntas no respondidas em fruns e por fim temos que nos virar sozinhos. Sendo assim, temos aqui um artigo completo para facilitar a vida dos interessados neste aprendizado. O artigo est organizado em trs partes: a primeira mostra a criao do banco e da tabela no Access, a segunda mostra a conexo e a terceira mostra o passo a passo do de um projeto prtico. Ao final disponibilizado o projeto para download.

1. Criando um Banco de Dados No Access


Abra o Microsoft Access 2007 e Clique em Arquivo -> Novo, conforme mostra a Figura 1:

Figura 1: Criar um novo banco de dados Aps isto, no canto superior direito aparecer o campo para ser criado, conforme a Figura 2:

Figura 2: Criando o novo banco de dados Coloque o nome do Banco como Curso.accbd e clique na pasta ao lado, conforme destaca a Figura 2. Aps isto ser aberta uma tela como a da Figura 3:

Figura 3: Selecionando o Local de criao do novo banco de dados Acesse o Disco C:\, crie uma pasta chamada AccessBD e salve o nosso projeto l como Curso.accbd. Veja na Figura 4:

Figura 4: Salvando o Novo banco de dados Aps isto, clique em OK. Agora voltamos para a nossa tela principal do Access, como mostrado na Figura 5:

Figura 5: Passo final para Criar o novo banco de dados Agora s clicar em Criar e o nosso banco j estar criado, ento s criar a tabela que ser usada no projeto e adicionar os registros.

Criando a tabela
Clique na Aba Criar -> design da Consulta, conforme a Figura 6:

Figura 6: Criao da Tabela Passo 1 Ser mostrada uma tela conforme a Figura 7:

Figura 7: Criao da Tabela Passo 2 Clique em fechar, como destaca a Figura 7. Aps isto ser mostrada uma tela conforme a Figura 8:

Figura 8: Criao da Tabela Passo 3 Clique em Modo de exibio SQL, conforme destaca a Figura 8. A tela ser mostrada conforme a Figura 9:

Figura 9: Criao da Tabela Passo 4 Digite o texto da Figura 9 e depois clique em executar, conforme destaca a mesma. Pronto, a nossa tabela j esta criada e ela aparecer do lado esquerdo, conforme mostra a Figura 10:

Figura 10: Criao da Tabela Passo 5

Adicionando registros a tabela


Clique na Aba Criar -> Consulta, conforme a Figura 11:

Figura 11: Adicionando Registros a Tabela Passo 1 Ser mostrada uma tela conforme a Figura 12:

Figura 12: Adicionando Registros a Tabela Passo 2 Clique em fechar, conforme destaca a Figura 12. Aps isto, ser mostrada uma tela como a da Figura 13:

Figura 13: Adicionando Registros a Tabela Passo 3

Clique em Modo de exibio SQL, como destaca a Figura 13. A tela de execuo de instrues SQL ser apresentada, como se v na figura a seguir.

Figura 14: Adicionando Registros a Tabela Passo 4 Digite o texto da Figura 14 e depois clique em executar, de acordo com a ilustrao da mesma. Agora s dar dois cliques sobre a tabela, conforme mostra a Figura 15:

Figura 15: Adicionando Registros a Tabela Passo 5 Ser mostrada a tela ilustrada na Figura 16:

Figura 16: Adicionando Registros a Tabela Passo 6 Agora o nosso primeiro registro foi inserido, para inserir outros s seguir os passos anteriores.

2. Conectando o Java ao Access


Clique em Painel de Controle -> Ferramentas Administrativas -> Fontes de dados (ODBC). Ser aberta uma janela como a da Figura 17:

Figura 17: Administrador de Fonte de dados(ODBC) Clique em MS Access Database e depois em adicionar. Ser aberta uma janela como a que mostrada na Figura 18:

Figura 18: Criar uma nova fonte de dados Aps clicar em Concluir ser aberta uma janela conforme a Figura 19:

Figura 19: Configurar ODBC para Microsoft Access Como o nosso banco j est criado, ento s Clicar em Selecionar e ento a tela mostrada na Figura 20 ser aberta.

Figura 20: Selecionar banco de dados Agora s selecionar a Unidade, que no nosso caso o disco C, a pasta que aqui a pasta ACCESSBD e o nome do banco de dados, que no nosso caso o Curso.accbd. Agora clique em OK. A tela mostrada na Figura 21 ser aberta.

Figura 21: Configurar ODBC para Microsoft Access Agora coloque Curso nos campos Nome da Fonte de Dados e Descrio.

Veja que em Banco de dados agora aparece o banco que ns selecionamos, ento s clicar em OK. Ao clicar em Ok ser mostrada a tela conforme a Figura 22:

Figura 22: Administrador de fonte de dados ODBC Veja que voltamos na nossa primeira tela e que agora temos o

banco Curso em Fonte de dados de usurio. Pronto, a nossa conexo j est estabelecida, agora s criar um projeto contendo o seguinte mtodo, conforme a Figura 23.

Figura 23: Mtodo de Conexo Java x Access

Veja que na Figura 23 temos uma setinha que destaca Curso, esse Curso que colocamos ali o mesmo que colocamos na Figura 21 no campo nome da fonte de dados. Agora iremos criar um projeto utilizando o que j foi explicado para fixao do aprendizado, lembrando que ao final disponibilizo o projeto para download.

2. Criao do Projeto Prtico


No NetBeans vamos em Arquivo -> Novo Projeto e crie um novo Projeto. Defina o nome do projeto no NetBeans como Access e salve-o na mesma pasta onde est o banco de dados, conforme as Figuras 24 e 25.

Figura 24: Criando o Projeto Prtico Passo 1

Figura 25: Criando o Projeto Prtico Passo 2 Agora s clicar em finalizar, como mostra a Figura 25 e pronto, nosso projeto j est criado.

Criando a classe Main


V em Pacotes do cdigo Fonte e clique com o boto direito em Novo -> Classe Java, conforme a Figura 26.

Figura 26: Criando a classe Main Passo 1 Coloque o nome da nossa classe de Main, como mostra a Figura 27.

Figura 27: Criando a classe Main Passo 2

Colocando as partes na Classe Main


Vamos deixar claro que por fins didticos todo o nosso Projeto ser criado dentro da Classe Main, mostrada na Figura 28. Cada funo mostrada nas prximas figuras deve ser colocada dentro da classe Main na sequncia em que esto sendo mostradas. Agora vamos adicionar a funo responsvel pela conexo, as variveis da nossa Classe e os imports, como ilustra a Figura 29.

Figura 28: Colocando as funes na Classe Main Passo 1 Agora s ir criando as funes conforme as Listagens de 1 a 5 e, por fim, chamar a funo Executa dentro da funo main, de acordo com a Listagem 6. Lembrando que todas as funes devem ser inseridas dentro da nossa classe Main, mostrada na Figura 27. Listagem 1: Funo InsereDados da classe Main
private void InsereDados() { do{ strCurso = (String)JOptionPane. showInputDialog("Digite o numero do Curso:"); }while(strCurso == null); do{ strNome = (String)JOptionPane. showInputDialog("Digite o nome do Curso:"); }while(strNome == null); do{ strDuracao = (String)JOptionPane. showInputDialog("Digite A Carga Horaria do Curso:"); }while(strDuracao == null); }

Listagem 2: Funo Insert da classe Main


private void Insert(){ if ((strCurso != null)&&(strNome != null)&&(strDuracao != null)) { try { PreparedStatement strComandoSQL ;

strComandoSQL = Conexao.prepareStatement( "INSERT curso(CDCurso,NMCurso,NRDuracao)" + " VALUES(?,?,?)"); strComandoSQL.setInt(1,Integer.parseInt(strCurso)); strComandoSQL.setString(2,strNome); strComandoSQL.setInt(3,Integer.parseInt(strDuracao)); int intRegistro = strComandoSQL.executeUpdate(); if (intRegistro != 0){ JOptionPane.showMessageDialog(null,"Registro adicionado !", "Mensagem",JOptionPane.INFORMATION_MESSAGE); Comando.close(); Conexao.close(); } else{ JOptionPane.showMessageDialog(null,"Registro nao adicionado !", "Mensagem",JOptionPane.INFORMATION_MESSAGE); Comando.close(); Conexao.close(); } } catch (Exception Excecao) { JOptionPane.showMessageDialog(null,"SQLException: " + Excecao.getMessage(),"Erro: Selecaoo de registro", JOptionPane.INFORMATION_MESSAGE); } } else { JOptionPane.showMessageDialog(null,"Falta Preencher Campo!", "Mensagem",JOptionPane.INFORMATION_MESSAGE); } } INTO

Listagem 3: Funo Consulta da classe Main


private void Consulta(){ do { strRegistro = (String)JOptionPane. showInputDialog("Digite registro:"); } while (strRegistro == null); o numero do

if (strRegistro != null) { try { PreparedStatement strComandoSQL ; strComandoSQL = Conexao. prepareStatement("SELECT * FROM curso WHERE CDCurso= ? "); strComandoSQL.setString(1,strRegistro ); rsRegistro = strComandoSQL.executeQuery(); if (rsRegistro.next()) { Concat = +rsRegistro.getString("NMCurso") + "+rsRegistro.getString("NRDuracao"); JOptionPane.showMessageDialog(null,Concat,"Registro", JOptionPane.INFORMATION_MESSAGE); "\nCarga Horria do Curso: "Cdigo do Curso: " +rsRegistro.getString("CDCurso") + "\nNome do Curso: "

//JOptionPane.showMessageDialog(null,rsRegistro.getString("CDCurso"), //"Registro",JOptionPane.INFORMATION_MESSAGE);

//JOptionPane.showMessageDialog(null,rsRegistro.getString("NMCurso"), //"Registro",JOptionPane.INFORMATION_MESSAGE);

//JOptionPane.showMessageDialog(null,rsRegistro.getString("NRDuracao"), //"Registro",JOptionPane.INFORMATION_MESSAGE); } else JOptionPane.showMessageDialog(null,"Registro nao encontrado !", "Mensagem",JOptionPane.INFORMATION_MESSAGE); Comando.close(); Conexao.close(); } catch (Exception Excecao) { JOptionPane.showMessageDialog(null,"SQLException: " + Excecao.getMessage(),"Erro: Selecao de registro", JOptionPane.INFORMATION_MESSAGE); } } }

Listagem 4: Funo Menu da classe Main


private void Menu(){ String strOpcao;

JOptionPane.showMessageDialog(null,"Programa para Gerenciar Cursos!", "Mensagem",JOptionPane.INFORMATION_MESSAGE); JOptionPane.showMessageDialog(null,"1- Cadastrar 2- Consultar 3 -Sair !", "Mensagem",JOptionPane.INFORMATION_MESSAGE); do { strOpcao = (String)JOptionPane.showInputDialog("Entre com a Opo:"); }while(strOpcao == null); if (Integer.parseInt(strOpcao)== 1 ) { InsereDados(); Insert(); } else{ if (Integer.parseInt(strOpcao)== 2 ) { Consulta(); } else { Object Botoes[] = {" Sim "," Nao "}; int intResposta = JOptionPane.showOptionDialog(null, "Deseja mesmo sair ?","Saida",JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE,null,Botoes,Botoes[1]); if (intResposta == 0) { System.exit(0); }else{ Menu(); } } } }

Listagem 5: Funo Executa da classe Main


private void Executa() { Conecta();//Aqui chamamos a funo responsvel pela conexo Menu(); }

Agora s chamar a funo Executa dentro da funo main. Listagem 6: Chamando a funo Executa
public static void main(String[] args)

{ //TODO code application logic here new Main.Executa(); }

Aps adicionar todas as funes mostradas dentro da classe Main, agora s compilar o Projeto e pronto.