Criando Uma Aplicação Com Acesso a Banco de Dados No NetBeans

9
Criando uma aplicação com acesso a Banco de Dados no NetBeans O NetBeans não possui ferramentas que permitam criar visualmente componentes, em um programa, para manipular os dados de uma tabela, a exemplo dos existentes em outras ferramentas, em outras Linguagens de programação. Introdução O NetBeans não possui ferramentas que permitam criar visualmente componentes, em um programa, para manipular os dados de uma tabela, a exemplo dos existentes em outras ferramentas, em outras Linguagens de programação. Para trabalhar com Banco de Dados é preciso fazê-lo via código, que deverá ser inserido dentro do método “actionPerformed” de um JButton. Cria-se o “Formulário” contendo os componentes visuais para mostrar, e manipular, os dados da tabela do Banco de Dados. Dentre estes componentes estão os botões ou menus, os quais serão os responsáveis por executar os códigos para realizar uma determinada operação, consulta, inserção, alteração ou exclusão em um BD. Depois de criada a “parte visual”, devem ser implementados os códigos nos botões/menus. · Podemos construir uma aplicação usando o seguinte roteiro: 1º) Importar o pacote java.sql: import java.sql.*; 2º) Carregar o driver de acesso ao BD: Através da Instalação de uma fonte JDBC/ODBC em plataforma Windows: Class.forName(“sun.jdbc.odbc.JdbcObdcDriver”); Através do driver específico do banco. Ex para o MySQL: Class.forName(“com.mysql.jdbc.Driver”); 3º) Obter uma conexão com o BD: (Ex: para um Banco de Dados Access: IJPlanetas.mdb, através de uma fonte JDBC/ODBC) Connection conexão = DriverManager.getConnection(“jdbc:odbc:IJPlanetas”); 4º) Por meio da conexão realizada, devemos obter uma instância de um objeto Statement, PreparedStatement ou CallableStatement, para passar comandos SQL ao BD:

Transcript of Criando Uma Aplicação Com Acesso a Banco de Dados No NetBeans

Page 1: Criando Uma Aplicação Com Acesso a Banco de Dados No NetBeans

Criando uma aplicação com acesso a Banco de Dados no NetBeans

O NetBeans não possui ferramentas que permitam criar visualmente componentes, em um programa, para manipular os dados de uma tabela, a exemplo dos existentes em outras ferramentas, em outras Linguagens de programação.

Introdução

O NetBeans não possui ferramentas que permitam criar visualmente componentes, em um programa, para manipular os dados de uma tabela, a exemplo dos existentes em outras ferramentas, em outras Linguagens de programação.

Para trabalhar com Banco de Dados é preciso fazê-lo via código, que deverá ser inserido dentro do método “actionPerformed” de um JButton.

Cria-se o “Formulário” contendo os componentes visuais para mostrar, e manipular, os dados da tabela do Banco de Dados. Dentre estes componentes estão os botões ou menus, os quais serão os responsáveis por executar os códigos para realizar uma determinada operação, consulta, inserção, alteração ou exclusão em um BD.

Depois de criada a “parte visual”, devem ser implementados os códigos nos botões/menus.

·         Podemos construir uma aplicação usando o seguinte roteiro:

1º) Importar o pacote java.sql:

import java.sql.*;

2º) Carregar o driver de acesso ao BD:

Através da Instalação de uma fonte JDBC/ODBC em plataforma Windows:

Class.forName(“sun.jdbc.odbc.JdbcObdcDriver”);

Através do driver específico do banco. Ex para o  MySQL:

Class.forName(“com.mysql.jdbc.Driver”);

3º) Obter uma conexão com o BD: (Ex: para um Banco de Dados Access: IJPlanetas.mdb, através de uma fonte JDBC/ODBC)

Connection conexão = DriverManager.getConnection(“jdbc:odbc:IJPlanetas”);

4º) Por meio da conexão realizada, devemos obter uma instância de um objeto Statement, PreparedStatement ou CallableStatement, para passar comandos SQL ao BD:

Statement stmt= conexão.createStatement();

5º) Criar objetos para executar operações no BD (execute (String), executeQuery (String), ExecuteUpdate(String), executeBatch()):

int reg =stmt.executeUpdate(“delete from planeta where nome=’Maria’”);

Page 2: Criando Uma Aplicação Com Acesso a Banco de Dados No NetBeans

ResultSet rs = stmt.executeQuery(“select nome from planeta”);

6º) Algumas operações retornam resultados do BD (um objeto Resultset – conjunto de registros), os quais devemos exibir ou processar:

while( rs.next() ) {    //move o curso de registros

            String Nome=rs.getString(“nome”);  // obtém o valor do campo “nome” da tabela

      System.out.println(Nome);   

}

7º) Quando não precisar mais dos objetos obtidos, libere-os:

rs.close();

stmt.close();

8º) Após todas as operações encerre a conexão com BD:

conexão.close();

Exemplo Completo

Crie uma aplicação para cadastrar a Matricula e os Nomes dos Funcionários de uma Empresa, em um Banco de Dados Access, através de uma fonte de dados JDBC/ODBC:

·         Criar um novo Project: clique no menu File >> New Project >> selecione General >> Java Applicatin >> Next >> na próxima janela digite o no do Projeto: ExemploConexaoBD, clique em Finish.

·         Criar um JForm contendo os componentes visuais: Clique no Menu File >> New File >> Selecione Java GUI Forms >> JFrame Forms >> clique no botão Next. Na janela que se abre, no campo “Name”, digite “SistCadFunc” e clique no Botão Finish.

·         Insira os seguintes componentes: dois JLabel (Nome e Matricula), dois JTextField e um JButton (Salvar).

 

Figura 1 - Tela SistCadFunc.

A parte visual esta construída, falta o código para salvar os dados.

·         Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha) com os campos: Matricula (Tipo Numérico/Chave Primária) e Nome – Tipo Texto.

·         Criar a fonte de dados JDBC/ODBC: No windows, abra o Painel de Controle >> Ferramentas Administrativas >> Fontes de Dados ODBC >> clique no Botão Add >> Selecione o Driver p/ BD Access

Page 3: Criando Uma Aplicação Com Acesso a Banco de Dados No NetBeans

>> clique no botão Concluir >> no campo “Nome da Fonte de Dados” digite “BDCadastro” >> clique no botão Selecionar >> Procure o BD criado (BDCadastro) e clique no Botão OK >> OK  >> OK.

 

Figura 2 - Tela de Abertura da Fonte de Dados ODBC.

 

Figura 3 - Tela de Seleção do Driver.

Page 4: Criando Uma Aplicação Com Acesso a Banco de Dados No NetBeans

Figura 4 – Tela de Configuração do Driver.

 

Figura 5 – Tela de Seleção do Banco Access.

Criado o BD e a Fonte ODBC, volte para a sua aplicação no NetBeans e clique com o botão direito do mouse no JButton (Salvar), selecione Event  >> Action  >>  actionPerformed, para codificar a conexão:

·         Depois de “private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {“, digite:

try{ //tratamento de erros

        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//Driver JDBC – Fonte de Dados ODBC

        //conecta no BD, as aspas vazias representam o Login: usuário e senha.

        Connection con = DriverManager.getConnection("jdbc:odbc:BDCadastro","","");

        Statement stmt = con.createStatement();       //objeto comdo sql

        int cadMat=Integer.parseInt( jTextField1.getText() );

        String cadNome = jTextField2.getText();      //obtém nome digitado

Page 5: Criando Uma Aplicação Com Acesso a Banco de Dados No NetBeans

        stmt.executeUpdate("insert into TabFicha (Matricula,Nome) values ('" + cadMat + "','" + cadNome +  "')" );

        JOptionPane.showMessageDialog( this, " Dados Salvos! ");

        con.close();  // fecha conexão com BD

      }  catch( SQLException e){ //trata os erros SQL

            JOptionPane.showMessageDialog(this, "Erro Cmdo SQL " + e.getMessage() );

            } catch( ClassNotFoundException e){      //trata erros de conexão

             JOptionPane.showMessageDialog( this, " Driver não encontrado " );

}

·         Importar os pacotes “sql” e “swing” do Java - antes de: “public class SistCadFunc...” digite:

import java.sql.*;

import javax.swing.*;

Compile (F9) Execute (Shift+F6).

Realizando operações de Consulta, Alteração e Exclusão em BD:

·         Insira três Botões para executar as operações restantes no Banco de Dados (Consulta, Alteração e Exclusão, através da Matricula), um JLabel, para exibir o Texto “Matricula para Consulta/Exclusão”, supondo que estas operações serão feitas através do campo “Matricula”, e insira também um JTextField para usuário poder digitar a “Matricula”, ou crie um novo Form contendo os JLabel, JTextField , e JButton, sendo que o mesmo deverá ser chamado por outro Form através de um JMenurBar.

·         Supondo que foram inseridos os novos componentes da seguinte forma:

 

Figura 6 – Tela SistCadFunc  atualizada.

·         Basta clicar com o botão direito do mouse sobre o botão desejado e inserir o respectivo código para a respectiva operação:

·         Operação de Consulta (Através da Matricula digitada pelo usuário no jTextField3)

boolean consulta=true;

        try{ //tratamento de erros

Page 6: Criando Uma Aplicação Com Acesso a Banco de Dados No NetBeans

            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//busca Driver

            //conecta no BD

            Connection con=DriverManager.getConnection("jdbc:odbc:BDCadastro","","");

            Statement stmt= con.createStatement();//objeto comdo sql

            int ConsMatricula= Integer.parseInt(jTextField3.getText());

            ResultSet RS= stmt.executeQuery("Select * from TabFicha where Matricula=" + ConsMatricula );

            while (RS.next()){

                //Exibir os valores retornados na consulta nos jTextField

                int Mat= RS.getInt("Matricula");//Pega a Matricula

                jTextField1.setText(String.valueOf(Mat)); //converte Inteiro para String.

                jTextField2.setText(RS.getString("Nome")); // Pega o Nome

                consulta=false;

                JOptionPane.showMessageDialog(this,"Dados Encontrados!");

            }

            if (consulta) JOptionPane.showMessageDialog(this,"Dados Não Encontrados!");

            RS.close();

            stmt.close();

            con.close(); //fecha conexão com BD

        } catch(SQLException e){ //trata os erros

            JOptionPane.showMessageDialog(this,"Erro Cmdo SQL "+e.getMessage());

        } catch(ClassNotFoundException e){

            JOptionPane.showMessageDialog(this,"Driver não encontrado");

        }  

 

·         Alterar: (Realiza alteração dos dados através da Matricula informada no jTextField3)

try{ //tratamento de erros

      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//busca Driver

      //conecta no BD

Page 7: Criando Uma Aplicação Com Acesso a Banco de Dados No NetBeans

      Connection con=DriverManager.getConnection("jdbc:odbc:BDCadastro","","");

      Statement stmt= con.createStatement();//objeto comdo sql

int consMatricula= Integer.parseInt(jTextField3.getText());

int cadMat=Integer.parseInt(jTextField1.getText());

String cadNome=jTextField2.getText();

int registro = stmt.executeUpdate("update TabFicha set Nome='" + cadNome + "', Matricula=" + cadMat + " where Matricula=" + consMatricula);  

if (registro!=0) JOptionPane.showMessageDialog(this,"Dados Alterados!");

                 else JOptionPane.showMessageDialog(this,"Dados Não Alterados!");

            stmt.close();

            con.close(); //fecha conexão com BD

      } catch(SQLException e){ //trata os erros

            JOptionPane.showMessageDialog(this,"Erro Cmdo SQL "+e.getMessage());

            } catch(ClassNotFoundException e){      

             JOptionPane.showMessageDialog(this,"Driver não encontrado");

        }

·         Excluir: (Realiza exclusão do registro através da Matricula informada no jTextField3)

try{ //tratamento de erros

      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//busca Driver

      //conecta no BD

      Connection con=DriverManager.getConnection("jdbc:odbc:BDCadastro","","");

      Statement stmt= con.createStatement();//objeto comdo sql

int excMatricula= Integer.parseInt(jTextField3.getText());

           int registro=stmt.executeUpdate("delete from TabFicha where Matricula=" + excMatricula);

if (registro!=0) JOptionPane.showMessageDialog(this,"Dados Excluidos!");

            else JOptionPane.showMessageDialog(this,"Dados não Excluidos!");

        stmt.close();

        jTextField3.setText(“”); //Limpa a caixa de texto

Page 8: Criando Uma Aplicação Com Acesso a Banco de Dados No NetBeans

        con.close(); //fecha conexão com BD

      } catch(SQLException e){ //trata os erros

            JOptionPane.showMessageDialog(this,"Erro Cmdo SQL "+e.getMessage());

            } catch(ClassNotFoundException e){      

             JOptionPane.showMessageDialog(this,"Driver não encontrado");

        }

Compile Execute

OBS: Como os comandos de conexão com o Banco de Dados estão se repetido, os mesmos poderiam ser implementados dentro do método construtor ou dentro de um método e serem executados através de uma chamada deste método quando se desejar estabelecer uma conexão com o banco de dados para realizar uma determinada operação em suas tabelas, diminuindo a quantidade de código a ser digitado.

José Valney Melo Barbalho ([email protected]), é MBA em GSI.

Leia mais em: Criando uma aplicação com acesso a Banco de Dados no NetBeans http://www.devmedia.com.br/criando-uma-aplicacao-com-acesso-a-banco-de-dados-no-netbeans/5122#ixzz2yt74tSjy