Como conectar uma aplicação Java a um banco de dados Access

Veja neste artigo uma explicação passo a passo completa de como conectar uma aplicação Java a um banco de dados Access.

A necessidade de publicar este artigo surgiu levando em consideração que o aprendizado de como fazer um projeto em Java com Access se torna difícil, pois não há uma fonte com um exemplo completo. Prova disso é que se procurarmos pela internet, não encontraremos nada completo, o que achamos são pedaços de códigos espalhados que mais confundem do que explicam e perguntas não respondidas em fóruns 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 três partes: a primeira mostra a criação do banco e da tabela no Access, a segunda mostra a conexão e a terceira mostra o passo a passo do de um projeto prático. 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

Após 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. Após isto será aberta uma tela como a da Figura 3:


Figura 3: Selecionando o Local de criação 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

Após 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, então é 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: Criação da Tabela – Passo 1

Será mostrada uma tela conforme a Figura 7:


Figura 7: Criação da Tabela – Passo 2

Clique em fechar, como destaca a Figura 7.

Após isto será mostrada uma tela conforme a Figura 8:


Figura 8: Criação da Tabela – Passo 3

Clique em Modo de exibição SQL, conforme destaca a Figura 8.

A tela será mostrada conforme a Figura 9:


Figura 9: Criação 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: Criação 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.

Após isto, será mostrada uma tela como a da Figura 13:


Figura 13: Adicionando Registros a Tabela – Passo 3

Clique em Modo de exibição SQL, como destaca a Figura 13.

A tela de execução de instruções 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 ilustração 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

Após 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, então é só Clicar em Selecionar e então 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 Descrição.

Veja que em Banco de dados agora aparece o banco que nós selecionamos, então é 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 usuário.

Pronto, a nossa conexão já está estabelecida, agora é só criar um projeto contendo o seguinte método, conforme a Figura 23.


Figura 23: Método de Conexão 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 fixação do aprendizado, lembrando que ao final disponibilizo o projeto para download.

2. Criação do Projeto Prático

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 Prático – Passo 1


Figura 25: Criando o Projeto Prático – 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 código Fonte e clique com o botão 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 didáticos todo o nosso Projeto será criado dentro da Classe Main, mostrada na Figura 28.

Cada função mostrada nas próximas figuras deve ser colocada dentro da classe Main na sequência em que estão sendo mostradas.

Agora vamos adicionar a função responsável pela conexão, as variáveis da nossa Classe e os imports, como ilustra a Figura 29.


Figura 28: Colocando as funções na Classe Main – Passo 1

Agora é só ir criando as funções conforme as Listagens de 1 a 5 e, por fim, chamar a função Executa dentro da função main, de acordo com a Listagem 6. Lembrando que todas as funções devem ser inseridas dentro da nossa classe Main, mostrada na Figura 27.

Listagem 1: Função 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: Função Insert da classe Main

private void Insert(){ if ((strCurso != null)&&(strNome != null)&&(strDuracao != null)) { try { PreparedStatement strComandoSQL ; strComandoSQL = Conexao.prepareStatement( "INSERT INTO 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); } }

Listagem 3: Função Consulta da classe Main

private void Consulta(){ do { strRegistro = (String)JOptionPane. showInputDialog("Digite o numero do registro:"); } while (strRegistro == null); 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 = "Código do Curso: " +rsRegistro.getString("CDCurso") + "\nNome do Curso: " +rsRegistro.getString("NMCurso") + "\nCarga Horária do Curso: "+rsRegistro.getString("NRDuracao"); JOptionPane.showMessageDialog(null,Concat,"Registro", JOptionPane.INFORMATION_MESSAGE); //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: Função 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 Opção:"); }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: Função Executa da classe Main

private void Executa() { Conecta();//Aqui chamamos a função responsável pela conexão Menu(); }

Agora é só chamar a função Executa dentro da função main.

Listagem 6: Chamando a função Executa

public static void main(String[] args) { //TODO code application logic here new Main.Executa(); }

Após adicionar todas as funções mostradas dentro da classe Main, agora é só compilar o Projeto e pronto.

O download do código fonte pode ser feito no topo desta página.

Obrigado a todos e até o próximo artigo.

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados