Você está na página 1de 6

Java - Conexo ao Banco de Dados usando JDBC

1. Criar o modelo no DBDesigner, como mostrado a seguir. Salvar o script de criao da tabela.

2. Criar o esquema e as tabelas no MySQL (Pode usar o MySQL Query Browser) 3. Criar um projeto Java simples, com o nome Empresa, no NetBeans 4. Adicionar o driver de conexo MySQL: a. Descompactar o arquivo com o driver em algum diretrio (Caso ainda no o tenha feito) b. Clicar com o boto direito sobre o diretrio biblioteca e adicionar jar c. Localizar o arquivo contendo o driver e adicion-lo 5. Criar trs pacotes para o Projeto Empresa: modelo, persistencia e teste 6. No pacote teste, criar a classe TestaConexao:
package teste; import import import import import java.sql.Connection; java.sql.DriverManager; java.sql.ResultSet; java.sql.SQLException; java.sql.Statement;

public class TestaConexao { public static void main (String args[]) throws SQLException{ Connection conexao = null; String url = "jdbc:mysql://servidor:3306/empresa"; String usuario = "root"; String senha = ""; try{ Class.forName("org.gjt.mm.mysql.Driver"); conexao = DriverManager.getConnection(url, usuario, senha); System.out.println("Conexo efetuada com sucesso!!!"); }catch(ClassNotFoundException cnfe){ System.out.println("Erro ao carregar o driver"); cnfe.printStackTrace(); } } }

7. Simular e testar erros na classe anterior 8. Criar uma classe no pacote persistncia que contenha o mtodo esttico: getConexao():
package persistencia; import import import import java.sql.Connection; java.sql.DriverManager; java.sql.ResultSet; java.sql.SQLException;

import java.sql.Statement; public class GerenteConexao { //metodo esttico gerador de conexes public static Connection getConexao(){ Connection conexao = null; String url = "jdbc:mysql://localhost:3306/empresa"; String usuario = "root"; String senha = "root"; try{ Class.forName("org.gjt.mm.mysql.Driver"); conexao = DriverManager.getConnection(url, usuario, senha); System.out.println("Conexo efetuada com sucesso!!!"); }catch(ClassNotFoundException cnfe){ System.out.println("Erro ao carregar o driver"); cnfe.printStackTrace(); } catch(SQLException sqle){ System.out.println("No foi possvel conectar com o BD"); sqle.printStackTrace(); } return conexao; } }

9. Testar a classe 10. Criar uma classe TestaEmpregado contendo o mtodo main() para testar a conexo com o banco de dados:
package teste; import import import import java.sql.Connection; java.sql.PreparedStatement; java.sql.SQLException; persistencia.GerenteConexao;

public class TestaEmpregado { public static void main(String a[]){ Connection con = GerenteConexao.getConexao(); PreparedStatement pst = null; try{ String sql = "INSERT INTO EMPREGADO(CODIGO, NOME, IDADE) VALUES(1,'Maria',25)"; pst = con.prepareStatement(sql); pst.executeUpdate(); System.out.println("Dados inseridos com sucesso!!!"); }catch(SQLException sqle){ System.out.println("No foi possvel inserir os dados!!"); } }

11. Alterar a classe:


String sql = "INSERT INTO EMPREGADO(CODIGO, NOME, IDADE) VALUES(?,?,?)";

pst = con.prepareStatement(sql); pst.setInt(1,2); pst.setString(2,"Jos"); pst.setInt(3,28); pst.executeUpdate();

12. Criar o classe EmpregadoDAO e o mtodo grava:


import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; public class EmpregadoDAO { public static int grava(int codigo, String nome, int idade) { Connection con = GerenteConexao.getConexao(); PreparedStatement pst = null; int ret = 0; try { String sql = "INSERT INTO EMPREGADO(CODIGO, NOME, IDADE) VALUES(?,?,?)"; pst = con.prepareStatement(sql); pst.setInt(1, codigo); pst.setString(2, nome); pst.setInt(3, idade); ret = pst.executeUpdate(); System.out.println("Dados inseridos com sucesso!!!"); } catch (SQLException sqle) { System.out.println("No foi possvel inserir os dados!!"); } return ret; } }

13. Imagine criar um mtodo grava para uma tabela com 100 campos! Ento chegou a hora de criarmos uma classe Java bean no pacote modelo, para que possamos instanciar objetos dessa classe. package modelo; public class Empregado { private int codigo; private String nome; private int idade; public int getCodigo() { return codigo; } public void setCodigo(int codigo) { this.codigo = codigo; } public String getNome() { return nome; } public void setNome(String nome) {

this.nome = nome; } public int getIdade() { return idade; } public void setIdade(int idade) { this.idade = idade; } } 14. Agora vamos atualizar o nosso mtodo grava, passando como parmetro um objeto e no mais cada um dos campos:
public static int grava(Empregado empregado) { Connection con = GerenteConexao.getConexao(); PreparedStatement pst = null; int ret = 0; try { String sql = "INSERT INTO EMPREGADO(CODIGO, NOME, IDADE) VALUES(?,?,?)"; pst = con.prepareStatement(sql); pst.setInt(1, empregado.getCodigo()); pst.setString(2, empregado.getNome()); pst.setInt(3, empregado.getIdade()); ret = pst.executeUpdate(); System.out.println("Dados inseridos com sucesso!!!"); } catch (SQLException sqle) { System.out.println("No foi possvel inserir os dados!!"); } return ret; } 15.

Vamos testar o nosso mtodo grava, para isso vamos criar uma classe de teste, chamada

TestaEmpregadoDAO:
TestaEmpregadoDAO: public class TestaEmpregadoDAO { public static void main(String args[]){ Empregado empregado = new Empregado(); empregado.setCodigo(3); empregado.setNome("Luiz"); empregado.setIdade(45); EmpregadoDAO.grava(empregado); } }

16. Agora vamos criar o mtodo altera:


public static int altera(Empregado empregado) { Connection con = GerenteConexao.getConexao(); PreparedStatement pst = null; int ret = 0; try { String sql = "UPDATE EMPREGADO SET NOME = ?, IDADE = ? WHERE CODIGO = ?"; pst = con.prepareStatement(sql);

pst.setString(1, empregado.getNome()); pst.setInt(2, empregado.getIdade()); pst.setInt(3, empregado.getCodigo()); ret = pst.executeUpdate(); System.out.println("Dados atualizados com sucesso!!!"); } catch (SQLException sqle) { System.out.println("No foi possvel atualizar os dados!!"); sqle.printStackTrace(); } return ret; }

17. Vamos criar o mtodo exclui:


public static int exclui(int codigo) { Connection con = GerenteConexao.getConexao(); PreparedStatement pst = null; int ret = 0; try { String sql = "DELETE FROM EMPREGADO WHERE CODIGO = ?"; pst = con.prepareStatement(sql); pst.setInt(1, codigo); ret = pst.executeUpdate(); System.out.println("Dados excludo com sucesso!!!"); } catch (SQLException sqle) { System.out.println("No foi possvel excluir os dados!!"); sqle.printStackTrace(); } return ret; }

18. Criar um mtodo para montar o objeto:


public static Empregado le(int codigo) { Connection con = GerenteConexao.getConexao(); PreparedStatement pst = null; ResultSet rs = null; Empregado empregado = null; try { String sql = "SELECT * FROM EMPREGADO WHERE CODIGO = ?"; pst = con.prepareStatement(sql); pst.setInt(1, codigo); rs = pst.executeQuery(); if (rs.next()){ empregado = new Empregado(); empregado.setCodigo(rs.getInt("codigo")); empregado.setNome(rs.getString("nome")); empregado.setIdade(rs.getInt("idade")); } System.out.println("Dados excludo com sucesso!!!"); } catch (SQLException sqle) { System.out.println("No foi possvel excluir os dados!!"); sqle.printStackTrace(); } return empregado; }

19. Para testar o mtodo le(), vamos criar o mtodo toString na classe Empregado, aps o mtodo setIdade();
public String toString(){

return "cdigo = "+getCodigo()+ "\nNome = "+getNome()+ "\nIdade = "+getIdade(); }

20. Vamos criar outro mtodo para ler todos os empregados do banco de dados:
public static List<Empregado> leTodos() { List <Empregado> empregados = new ArrayList(); Connection con = GerenteConexao.getConexao(); Statement st = null; ResultSet rs = null; Empregado empregado = null; try { st = con.createStatement(); rs = st.executeQuery("SELECT * FROM EMPREGADO;"); while (rs.next()){ empregado = new Empregado(); empregado.setCodigo(rs.getInt("codigo")); empregado.setNome(rs.getString("nome")); empregado.setIdade(rs.getInt("idade")); empregados.add(empregado); } System.out.println("Dados lidos com sucesso!!!"); } catch (SQLException sqle) { System.out.println("No foi possvel ler os dados!!"); sqle.printStackTrace(); } return empregados; }

Você também pode gostar