Passo a passo para criar uma Tela de cadastro (Utilizando o Banco de Dados Access) Prof. André Silva 1) Criar a classe ConnectionFactory: package testeconexao; import java.sql.*; public class ConnectionFactory { public static java.sql.Connection getConnection() throws SQLException { try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); System.out.println("Conectando ao banco"); java.sql.Connection conn = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=C:/JDBC/banco.mdb"); return conn; } catch (ClassNotFoundException e) { throw new SQLException(e.getMessage()); } } } 2) Criar a classe ContatoDAO: package testeconexao; import import import import import java.sql.PreparedStatement; java.sql.ResultSet; java.sql.SQLException; java.util.ArrayList; java.util.List; public class ContatoDAO { public java.sql.Connection connection; public ContatoDAO() throws SQLException { this.connection = ConnectionFactory.getConnection(); } //METODO RESPONSAVEL POR INSERIR DADOS NA TABELA CADASTRO public void adiciona(CadastroPojo cadast) throws SQLException { // prepared statement para inserção PreparedStatement stmt = (PreparedStatement) ((java.sql.Connection) this.connection).prepareStatement ("insert into cadastro(codigo,nome) values (?, ?)"); // seta os valores stmt.setInt(1, cadast.getCodigo()); stmt.setString(2, cadast.getNome()); // executa stmt.execute(); stmt.close(); } //METODO RESPONSAVEL POR ALTERAR DADOS NA TABELA CADASTRO public void alterar(CadastroPojo cadast) throws SQLException { // prepared statement para inserção PreparedStatement sql = this.connection.prepareStatement("update cadastro set nome = '"+cadast.getNome()+"' where codigo = "+cadast.getCodigo()); sql.executeUpdate(); } //METODO RESPONSAVEL POR DELETAR DADOS NA TABELA CADASTRO public void deletar(CadastroPojo cadast) throws SQLException { PreparedStatement sql = this.connection.prepareStatement("delete from cadastro where codigo = "+ cadast.getCodigo()); sql.executeUpdate(); } public List selecionar(CadastroPojo cadast) throws SQLException { PreparedStatement sql = this.connection.prepareStatement("select nome from cadastro where codigo = "+ cadast.getCodigo()); ResultSet rs = sql.executeQuery(); //CRIA OBEJTO LISTACONTATO DO TIPO LIST RESPONSAVEL POR ARMAZENAR TODOS OS REGISTRO QUE FOREM SELECIONADOS NO CASO 1 SO List<CadastroPojo> listacontato = new ArrayList<CadastroPojo>(); while (rs.next()) { //cria objeto temporario cadastro CadastroPojo cadastro = new CadastroPojo(); //instancia o objeto cadastro.setNome(rs.getString("nome")); //insere dados na lista listacontato.add(cadastro); } //fecha recordset rs.close(); //fecha statement sql.close(); return listacontato; } } 3) Criar o Banco de Dados: Criar a tabela cadastro Salvar o Banco no diretório -> C:\JDBC 4) Criar a classe CadastroPojo: package testeconexao; public class CadastroPojo { private int codigo; private String nome; 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; } } 5) Implentar a tela de Cadastro (evento ActionPerformed): Botão Inserir: try { //CRIACAO DOS OBJETOS: CadastroPojo cadastro = new CadastroPojo(); ContatoDAO dao = new ContatoDAO(); //ENVIA DADOS PARA MINHA CLASSE CADASTRO cadastro.setCodigo(Integer.parseInt(jTextField1.getText())); cadastro.setNome(jTextField2.getText()); //COMANDO QUE ADD DADOS NA TABELA: dao.adiciona(cadastro); //SE NAO OCORRER NENHUM ERRO A SEGUINTE MENSAGEM E EXIBIDA: JOptionPane.showMessageDialog(null, "Registro Salvo com sucesso!"); //LIMPA OS CAMPOS jTextField1.setText(""); jTextField2.setText(""); } catch (SQLException ex) { Logger.getLogger(Cadastro.class.getName()).log(Level.SEVERE, null, ex); } Botão Excluir: try { CadastroPojo cadastro = new CadastroPojo(); ContatoDAO dao = new ContatoDAO(); cadastro.setCodigo(Integer.parseInt(jTextField1.getText())); cadastro.setNome(jTextField2.getText()); dao.deletar(cadastro); JOptionPane.showMessageDialog(null, "Registro Deletado com Sucesso!"); } catch (SQLException ex) { Logger.getLogger(Cadastro.class.getName()).log(Level.SEVERE, null, ex); } Botão Alterar: try { ContatoDAO dao = new ContatoDAO(); CadastroPojo cadastro = new CadastroPojo(); cadastro.setCodigo(Integer.parseInt(jTextField1.getText())); cadastro.setNome(jTextField2.getText()); dao.alterar(cadastro); JOptionPane.showMessageDialog(null, "Registro Alterado com Sucesso!"); } catch (SQLException ex) { Logger.getLogger(Cadastro.class.getName()).log(Level.SEVERE, null, ex); } Botão Consultar: String nome = null; try { ContatoDAO dao = new ContatoDAO(); CadastroPojo cadastro = new CadastroPojo(); if (jTextField1.getText().equals("")|| jTextField1.getText().equals(null)){ JOptionPane.showMessageDialog(null, "É necessário entrar com o código"); }else{ cadastro.setCodigo(Integer.parseInt(jTextField1.getText())); dao.selecionar(cadastro); List<CadastroPojo> listaCadastro = dao.selecionar(cadastro); for (CadastroPojo cursor : listaCadastro) { nome = (cursor.getNome()); } jTextField2.setText(nome); } } catch (SQLException ex) { Logger.getLogger(Cadastro.class.getName()).log(Level.SEVERE, null, ex); }