MySQL Connector/J

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (8)  (0)

Veja neste artigo como fazer a conexão entre Java e o MySQL utilizando o “MySQL Connector/J”.

Pessoal, atendendo a pedidos neste artigos veremos como fazer a conexão entre Java e o MySQL utilizando o “” que é o driver JDBC do MySQL. O Connector/J é um driver JDBC do tipo IV e contém todas as características de JDBC para utilizar MySQL. Antes de mais nada acesse o site do MySQL (www.mysql.com) e baixe o driver. Como temos vários artigos sobre instalação e configuração do MySQL no site e na revista SQL Magazine vamos fugir desta parte e ir direto ao assunto da conexão do Java com o MySQL. Para demonstrar a utilização do driver criei um projeto de cadastro e consultas de clientes usando o Netbeans, caso você se interesse me escreva que enviarei o projeto por e-mail.

Criando o projeto

Crie um novo projeto no Netbeans chamado MySQLJDBC em seguida insira no projeto o driver JDBC (Connector/J), para fazer isso você deve selecionar a pasta “Libraries” e clicar com o botão direito selecionando a opção “Add JAR/Folder”, localize o arquivo baixado do site (mysql-connector-java-5.0.4-bin.jar) e selecione-o (veja na Figura 1 o resultado).
Agora que você inseriu no seu projeto o arquivo do driver JDBC já podemos obter acesso ao MySQL.

22-12pic01.JPG

Figura 1. Adicionando o driver JDBC ao projeto

Agora insira no projeto dois formulários (Figuras 2 e 3), estes formulários serão utilizados para conectar-se ao MySQL e fazer manutenção no cadastro de clientes, veja abaixo a descrição de cada um deles:

  • Formulário MySQLJDBC: Este é o formulário principal apresentado ao usuário, no menu temos as opções “Cadastro de Clientes” e “Conectar ao MySQL”, a opção “Conectar ao MySQL”exibirá os campos para o usuário digitar seus dados para acesso ao banco de dados, a opção “Cadastro de Clientes” permite ao usuário efetuar manutenção no cadastro de clientes, esta opção só ficará disponível após o usuário conectar-se ao MySQL;
  • Formulário frmIncConsExccliente: Este é formulário onde o usuário poderá incluir, consultar ou excluir clientes. Este formulário só poderá ser carregado após o usuário ter efetuado a conexão com o banco de dados. A opção a ser executada (Inclusão, Consulta ou Exclusão) é recebida dinamicamente de acordo com a opção selecionada pelo usuário no menu principal contido no formulário MySQLJDBC;

22-12pic02.JPG

Figura 2. O formulário MySQLJDBC

22-12pic03.JPG

Figura 3. O formulário frmInclusao

Código fonte

Vamos agora ver as principais partes do código fonte do nosso projeto, apresentaremos o código dos dois formulários da aplicação.

Listagem 1. Principais partes do formulário MySQLJDBC

import java.sql.*;
 import javax.swing.*;
  
 public class MySQLJDBC extends javax.swing.JFrame {
     
      Connection con; /* Mantem a conexão com o banco de dados MySQL */
      
      public MySQLJDBC() {
         initComponents();
         pnlConexao.setVisible(false);
         this.setLocationRelativeTo(null);
     }
     /* Método: btnOKActionPerformed – Este é o metodo 
          executado pelo botão OK após o usuário
          Ter informados seus dados como usuário e senha
     */
     private void btnOKActionPerformed(java.awt.event.ActionEvent evt) {
         String strCnn, strUser, strServer, strDB, strPass;
         strUser = txtUsuario.getText();
         strPass = new String(txtSenha.getPassword());
         strServer = txtServidor.getText();
         strDB = txtBanco.getText();
          
 /* Aqui é montada a string de conexão com o MySQL, 
     perceba que neste caso o MySQL Está rodando na porta 
     3307 portanto a necessidade de incluir o número da porta na string de conexão */
  
         strCnn = "jdbc:mysql://" + strServer + ":3307/" + strDB;
         try {
              /* Aqui registamos a classe do driver JDBC */
             Class.forName("com.mysql.jdbc.Driver");
         }
         catch(Exception e) {
             JOptionPane.showMessageDialog(null,"Nao foi possivel carregar o driver do MySQL");
             return;
         }
         try {
             /* Aqui abrimos a conexão com o MySQL */ 
             con = DriverManager.getConnection(strCnn,strUser,strPass);
         }
         catch(SQLException sqle) {
             JOptionPane.showMessageDialog(null,"Nao foi possivel conectar ao banco");
             return;
         }
         JOptionPane.showMessageDialog(null,"Conexao efetuada com sucesso");
         this.mnuConectar.setEnabled(true);
         this.mnuPrincipal.setEnabled(true);
         this.pnlConexao.setVisible(false);          
     }                                     
     /* Consulta clientes */
     private void mniConsultarActionPerformed(java.awt.event.ActionEvent evt) {
           if(con == null) {
              JOptionPane.showMessageDialog(null,"Voce ainda nao se conectou ao MySQL");
              return;          
           } 
           new frmIncConsExcCliente(2,con).setVisible(true);
     }                                            
     /* Inclusão de clientes */
     private void mniIncluirActionPerformed(java.awt.event.ActionEvent evt) {
         if(con == null) {
            JOptionPane.showMessageDialog(null,"Voce ainda nao se conectou ao MySQL");
            return;
         } 
         new frmIncConsExcCliente(1,con).setVisible(true);
     }                                          
     /* Exclusão de clientes */
     private void mniExcluirActionPerformed(java.awt.event.ActionEvent evt) {
         if(con == null) {
            JOptionPane.showMessageDialog(null,"Voce ainda nao se conectou ao MySQL");
            return;
         }  
         new frmIncConsExcCliente(3,con).setVisible(true);
     }                                          
      …
 }

Listagem 2 Principais partes do código do formulário frmInclusao

import java.sql.*;
 import javax.swing.*;
  
 class frmIncConsExcCliente extends javax.swing.JFrame {
     
     private int CodigoOP;
     Statement stmt;
     ResultSet rs;
     Connection con;
     
     public frmIncConsExcCliente(int OP, Connection cn) {
         CodigoOP = OP;
         con = cn;
         initComponents();
         this.setLocationRelativeTo(null);
         if(CodigoOP == 1) {
             btnAcao.setText("Incluir");
         }
         if(CodigoOP == 2) {
             this.setTitle("Consulta clientes");
             btnAcao.setText("Proximo");
             this.txtCodigo.setEditable(false);
             this.txtNome.setEditable(false);
             this.txtEndereco.setEditable(false);
             this.txtCidade.setEditable(false);
             this.txtUF.setEditable(false);
             try {
                 stmt = con.createStatement();
                 rs = stmt.executeQuery("SELECT * FROM tblCliente");
                 if(rs.next()) {
                    this.txtCodigo.setText(rs.getString(1));
                    this.txtNome.setText(rs.getString(2));
                    this.txtEndereco.setText(rs.getString(3));
                    this.txtCidade.setText(rs.getString(4));
                    this.txtUF.setText(rs.getString(5));
                 }
             }
             catch(SQLException sqle) {
                 JOptionPane.showMessageDialog
                  (null,"Nao foi possivel obter os registros da tabela");
                 return;
             }
         }
         if(CodigoOP == 3) {
             this.setTitle("Exclusão de clientes");
             btnAcao.setText("Excluir");
             btnAcao.setEnabled(false);
             txtCidade.setEditable(false);
             txtEndereco.setEditable(false);
             txtNome.setEditable(false);
         }
     }
     private void btnAcaoActionPerformed(java.awt.event.ActionEvent evt) {
          if(CodigoOP == 2 ) {  
             try {
                 if(rs.next()) {
                    this.txtCodigo.setText(rs.getString(1));
                    this.txtNome.setText(rs.getString(2));
                    this.txtEndereco.setText(rs.getString(3));
                    this.txtCidade.setText(rs.getString(4));
                    this.txtUF.setText(rs.getString(5));
                 }
                 else {
                    JOptionPane.showMessageDialog(null,"Nao existem mais registros");
                    return;
                 }
             }
             catch(SQLException sqle) {
                 JOptionPane.showMessageDialog(null,"Nao foi possivel ler registros da tabela");
                 return;
             }
          }
          if(CodigoOP == 1) {
              String strSQL = new String("");
              strSQL = "INSERT INTO tblCliente VALUES(" +
                       this.txtCodigo.getText() + ",'" +
                       this.txtNome.getText() + "','" +
                       this.txtEndereco.getText() + "','" +
                       this.txtCidade.getText() + "','" +
                       this.txtUF.getText() + "')";
              try {
                 stmt = con.createStatement();
                 stmt.execute(strSQL);
              }
              catch(SQLException sqlei) {
                 JOptionPane.showMessageDialog(null,"Nao foi possivel incluir registro");
                 return;
              }
              JOptionPane.showMessageDialog(null,"Registro OK");
              this.txtCodigo.setText("");
              this.txtCidade.setText("");
              this.txtNome.setText("");
              this.txtEndereco.setText("");
              this.txtCidade.setText("");
              this.txtUF.setText("");
              this.txtCodigo.requestFocus();        
          }
     }                                       
  
     private void txtCodigoActionPerformed(java.awt.event.ActionEvent evt) {
          if(CodigoOP != 2) {
              return;
          }  
          try {
             stmt = con.createStatement();
             rs = stmt.executeQuery("SELECT * FROM tblCliente WHERE " +
                  "CodCliente = " + txtCodigo.getText());
             if(!rs.next()) {
                JOptionPane.showMessageDialog(null,"Registro não localizado");
                return;
             }
             txtNome.setText(rs.getString(2));
             txtEndereco.setText(rs.getString(3));
             txtCidade.setText(rs.getString(4));
             txtUF.setText(rs.getString(5));
             btnAcao.setEnabled(true);
             btnAcao.requestFocus();
             txtCodigo.setEditable(false);
          }
          catch(SQLException sqlee) {
              JOptionPane.showMessageDialog(null,"Nao foi possivel obter registro");
              return;
          }
     }                                         
      …           
 }

Resultados

Veremos agora o resultado do nosso projetos, vamos executar os formulários e visualizar o resultado, veja abaixo nas Figuras 4,5 e 6.

22-12pic04.JPG

Figura 4. O formulário MySQLJBC, formulário principal

22-12pic05.JPG

Figura 5. Conectando-se ao MySQL

22-12pic06.JPG

Figura 6. Consultando o cadastro de clientes

Neste artigo aprendemos como fazer a conexão entre Java e MySQL usando o driver JDBC Connector/J, o qual permite desenvolver aplicações em Java usando o banco de dados MySQL. Trata-se de um recurso muito poderoso pois ambos rodam em praticamente todas as plataformas, desenvolvendo soluções em Java com MySQL você jamais ficará preso a plataforma nenhuma. Espero que as informações contidas no artigo sejam úteis. Caso queira receber o projeto completo envie-me um e-mail e te enviarei o projeto em Netbeans.

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?