Escolar Documentos
Profissional Documentos
Cultura Documentos
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!!"); } }
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); } }
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; }
19. Para testar o mtodo le(), vamos criar o mtodo toString na classe Empregado, aps o mtodo setIdade();
public String toString(){
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; }