MySQL Connector/J

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 “MySQL Connector/J” 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.

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:

Figura 2. O formulário MySQLJDBC
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.

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 1. Principais partes do formulário MySQLJDBC
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; } } … }
Listagem 2 Principais partes do código do formulário frmInclusao

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.

Figura 4. O formulário MySQLJBC, formulário principal
Figura 5. Conectando-se ao MySQL
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.

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

Artigos relacionados