Persistência de Objetos no SGBD PostgreSQL, Utilizando as APIs: JDBC, JDK, Swing e Design Patteners DAO.



Documentos relacionados
JAVA COM BANCO DE DADOS PROFESSORA DANIELA PIRES

Manipulação de Banco de Dados com Java 1. Objetivos

Persistência de Classes em Tabelas de Banco de Dados

JDBC. Prof. Márcio Bueno

Aula 1 Acesso a Banco de Dados

Programação Orientada a Objetos II

SISTEMA EXPERIMENTALL 15/11/2009. Olá! A partir de agora vamos conhecer a IDE NetBeans efetuando um micro projeto swing.

JDBC. Siga as instruções para instalar o banco de dados H2 e criar a tabela Alunos.

Laboratório de Banco de Dados Aula 1 Acesso a Banco de Dados. Prof. Josenildo Silva jcsilva@ifma.edu.br

Java com Banco de Dados Posgree

Curso: Desenvolvimento Java

Java Beans e Servlets

Manipulação de Banco de Dados com Java. Ms. Bruno Crestani Calegaro Maio/ 2015

Programação Orientada a Objetos JDBC Java Database Connectivity

Acesso a banco de dados

Criando uma agenda simples com NetBeans 6.5

JDBC (Java Database Connectivity) Padrão de Projeto DAO (Data Access Object) Roteiro para instalação do banco de dados e do driver JDBC

JDBC Java Database Connectivity

Integrando Java com Banco de Dados

Leonardo Gresta Paulino Murta

Java Exemplo MDI. Tela Principal

Drive MySql de conexão para Eclipse

Listando, gravando, alterando e excluindo registro do banco de dados com JSP

Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL.

MANUAL DO ANIMAIL Terti Software

NetBeans. Conhecendo um pouco da IDE

Treinamento sobre SQL

2 Orientação a objetos na prática

Autenticação e Autorização

Desenvolvendo Aplicações Web com NetBeans

JPA: Persistência padronizada em Java

Iniciando o MySQL Query Brower

INSTALANDO E CONFIGURANDO O MY SQL

JAVA NETBEANS PGOO Prof. Daniela Pires Conteúdo

Java JDBC - I. Ex. 2: para o SQLServer da Microsoft, o driver JDBC pode ser obtido em

Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans.

Acesso a Banco. Conexão em Java. Conexão em Java. Programação Orientada a Objetos Profa. Cristiane e Prof. Daniel

NOVIDADES DO JAVA PARA PROGRAMADORES C

Faculdade Boa Viagem Sistemas de Informação Gerenciais EXERCÍCIO PASSO-A-PASSO PEDIDOS E CONTROLE DE ESTOQUE. Microsoft Access.

Especialização em web com interfaces ricas

Java & Bancos de Dados Adaptado de Slides da Universidade Salgado de Oliveira Goiânia

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

Tutorial de Computação Introdução a Programação Gráfica em Java para MEC1100 v

Exercício 1 : As classes abaixo serão utilizadas neste exercício: public class Ponto { int x; int y; public Ponto(int x, int y){ this.

8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito)

Revisão: Introdução. - Integração com o AutoManager; 1 Atualização de versão do banco de dados PostgreSQL

Figura 1. A Classe Java

Procedimentos para Reinstalação do Sisloc

Programação com Acesso a Banco de Dados

Padrões de Projeto e Persistência com DAO

ÍNDICE 1.CONHECENDO OS APLICATIVOS NECESSÁRIOS PARA O FUNCIONAMENTO DO SISTEMA URANO INTEGRA...

JAVA JDBC COMO FUNCIONA. Programação Orientada a Objetos Flávio de Oliveira Silva 315. Programação Orientada a Objetos Flávio de Oliveira Silva 316

Persistindo dados com TopLink no NetBeans

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA

Prática em Laboratório N.02 Criando um serviço Web via NetBeans

Revisando sintaxes SQL e criando programa de pesquisa. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

BH PARK Software de Estacionamento

Unidade 9: Middleware JDBC para Criação de Beans

CONFIGURAÇÃO MINIMA EXIGIDA:

Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

MANIPULANDO BANCO DE DADOS NO POSTGRESQL SEM FAZER USO DE COMANDOS SQL

Manual Instalação Pedido Eletrônico

Java na WEB Banco de Dados

JDBC. Java DataBase Connectivity

Programação WEB (JSP + Banco Dados) Eng. Computação Prof. Rodrigo Rocha

Introdução a relatórios Crosstab com ireport/jasperreports

C# - Conexão com MySQL

Trabalhando com conexão ao banco de dados MySQL no Lazarus. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Unidade 7: Middleware JDBC e Java DB Prof. Daniel Caetano (Fonte: Tutorial Oficial do NetBeans)

Como usar o bluej. Laboratório I Prof.ª Vera Alves

Acessando um Banco de Dados

Manual de Instalação do AP_Conta Windows

ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES II PROFESSOR RAFAEL BARRETO DELPHI FORMULÁRIO COM ABAS E BUSCAS DE REGISTROS

( TIAGO DOS SANTOS MENDES ) PROGRAMAÇÃO DISPOSITIVOS MOVEIS ANDROID STUDIO

PROGRAMAÇÃO SERVIDOR MIDDLEWARE JDBC: USANDO O JAVA DB EM SISTEMAS WEB. Prof. Dr. Daniel Caetano

1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF)

Criando Banco de Dados, Tabelas e Campos através do HeidiSQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Módulo 5 JPATransaction Camadas Turma Turma TurmaBC TurmaBC TurmaBC TurmaBC

Manipulação de Dados em PHP (Visualizar, Inserir, Atualizar e Excluir) Parte 2

Acesso à Dados ZEOS x Delphi. Professor Anderson

Segurança de Acesso a Banco de Dados no MS SQL Server

Na disciplina de Cálculo Numérico, vamos trabalhar com a linguagem C++ e o compilador que vamos usar é o Dev C++.

Funcionamento da Aplicação. Simulações do funcionamento. Simulação SAC

DSS 08/09. Camada de Dados - JDBC. Aula 1. António Nestor Ribeiro /António Ramires Fernandes/ José Creissac Campos {anr,arf,jfc}@di.uminho.

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

Android e Bancos de Dados

Módulo 5 - JDBC java.sql - Conexão com Banco de Dados

Software. Gerenciamento de Manutenção

GUIA INTEGRA SERVICES E STATUS MONITOR

Tutorial do Sistema de Gestão de Conteúdos para Web - SYSWEB

BI Citsmart Fornece orientações necessárias para instalação, configuração e utilização do BI Citsmart.

A barra de menu a direita possibilita efetuar login/logout do sistema e também voltar para a página principal.

Data Transformation Services (DTS) por Anderson Ferreira Souza

INTRODUÇÃO À TECNOLOGIA SERVLETS

TUTORIAL DO ACCESS PASSO A PASSO. I. Criar um Novo Banco de Dados. Passos: 1. Abrir o Access 2. Clicar em Criar um novo arquivo

Resumo da Matéria de Linguagem de Programação. Linguagem C

Tutorial Ouvidoria. Acesso, Utilização, Visualização das Manifestações e Resposta ao Manifestante

Revisão: - 1 Desinstalando Versões Anteriores

Fernando Freitas Costa. Pós-Graduando em Gestão e Docência Universitária. blog.fimes.edu.br/fernando nando@fimes.edu.br

PHP INTEGRAÇÃO COM MYSQL PARTE 2

Transcrição:

Persistência de Objetos no SGBD PostgreSQL, Utilizando as APIs: JDBC, JDK, Swing e Design Patteners DAO. Robson Adão Fagundes http://robsonfagundes.blogspot.com/ Mini curso Desenvolvimento de aplicação Desktop, com Persistência em Banco de Dados com o Uso da Linguagem de programação Java especificação J2SE. Tecnologias e Ferramentas Envolvidas: J2SE, APIs: JDBC, JDK e Swing; IDE NetBeans 6.1; SGBD PosgresSQL 8.2; Design Patterns DAO; Vamos Iniciar a Aplicação: 1º Passo: Vamos Criar nossa base de dados, abra o PgAdmin III e crie uma base de dados chamada de: MiniCurso Clique com botão direito do mouse sobre Databases e clique em New Database de o nome para ela de MiniCurso; e depois clique em OK. Robson Adão Fagundes - http://robsonfagundes.blogspot.com/ - Página 1

De um duplo clique em cima da base Criada MiniCurso => Schemas => Public => Tables Deixe a seguinte estrutura, como mostra figura abaixo: Robson Adão Fagundes - http://robsonfagundes.blogspot.com/ - Página 2

Clique no botão SQL: Agora vamos criar nossa tabela no banco de dados o script SQL é o seguinte: Cole o Código SQL dentro do pgadmin Query e clique no botão Se a mensagem retornar SUCCESSFULLY nossa tabela no banco foi criado corretamente Criado o Banco partiremos para segundo passo; Robson Adão Fagundes - http://robsonfagundes.blogspot.com/ - Página 3

2 Passo: Inicie o NetBeans 6.1 crie um novo Java Application ou (Aplicação Java). No nome do projeto coloque exemplojdbc; e desmarque a opção: Criar Classe Main depois em finalizar para criar nosso projeto; Robson Adão Fagundes - http://robsonfagundes.blogspot.com/ - Página 4

3º Passo: Clique em Pacotes de Código - Fonte e Crie um pacote chamado beans Robson Adão Fagundes - http://robsonfagundes.blogspot.com/ - Página 5

Clique no pacote beans e crie a Classe Java chamada de Pessoa; A classe Pessoa.java representara o nosso modelo, ou seja, nossa tabela do banco de dados. Ela devera ter atributos que representam as colunas da nossa tabela do banco de dados; Note que elas possuem o mesmo nome. Robson Adão Fagundes - http://robsonfagundes.blogspot.com/ - Página 6

4º Passo: Criar os atributos da classe Pessoa.java que representaram as colunas da tabela pessoa, Os nomes das colunas devem ser iguais nos atributos do bean Pessoa.java Robson Adão Fagundes - http://robsonfagundes.blogspot.com/ - Página 7

Agora devemos criar os métodos Construtores da Classe, Seters e Geters do nosso bean; Clique com botão direito do mouse e clique em Inserir Código e clique em Construtor não selecione nada e clique em gerar. Robson Adão Fagundes - http://robsonfagundes.blogspot.com/ - Página 8

Agora Clique novamente com botão direito do mouse e clique em Inserir Código e clique em Construtor e selecione todas as opções e clique em gerar. Pronto nossa Classe já possui seus atributos e os métodos construtores da classe sem parâmetros e com parâmetros. Ainda Faltam os métodos Seters e Geters; Robson Adão Fagundes - http://robsonfagundes.blogspot.com/ - Página 9

Agora devemos criar os métodos Seters e Geters do nosso bean; Clique com botão direito do mouse sobre os atributos da classe e selecione a opção: Refatorar => Encapsular campos... Marque todas as opções e clique em Refatorar; Pronto já possuímos nossa classe que representara os dados da tabela Pessoa Criada no nosso banco de dados. Você deve ter a seguinte estrutura; Robson Adão Fagundes - http://robsonfagundes.blogspot.com/ - Página 10

6º Passo: Pronto agora já temos o modelo de dados da nossa aplicação. Agora devemos criar uma conexão com o banco de dados. Criaremos um pacote chamado conexão e uma classe também chamada de Conexão.java; no src da aplicação. Os comentários acima das linhas, explicam melhor o que cada linha da classe faz. Copie e cole o código abaixo na sua classe Conexão.java Os comentários acima das linhas, explicam melhor o que cada linha da classe faz. package conexao; import java.sql.connection; import java.sql.drivermanager; import java.sql.sqlexception; public class Conexao { // atributos private static Connection conexao = null; //esta é a variável fonte recebe o mesmo nome da base de dados //criada no postgresql private String fonte = "MiniCurso"; //Conexao Para a Base de Dados do PostgresSQL utilizando JDBC private Conexao() { Robson Adão Fagundes - http://robsonfagundes.blogspot.com/ - Página 11

try { //Driver para fazer conexao com um Banco postgresql Class.forName("org.postgresql.Driver"); //comando para fazer conexao via JDBC com um banco postgresql //sendo informado o servidor e sua porta, no caso localhost na porta 5432 // + o nome da base de dados, o usuario e a senha. conexao = DriverManager.getConnection("jdbc:postgresql://127.0.0.1:5432/" + fonte, "usuario do banco", "senha do banco"); catch (ClassNotFoundException e) { e.printstacktrace(); System.out.println("Ocorreu um erro de class não encontrada!!!"); catch (SQLException e) { e.printstacktrace(); System.out.println("Ocorreu um erro na conexao com o banco de dados!!!"); public static Connection getinstance() { if (conexao == null) { new Conexao(); return conexao; Agora vamos adicionar para a biblioteca da nossa aplicação o Driver de conexão com o banco: postgresql-8.2-xxx.jdbcxxx.jar Robson Adão Fagundes - http://robsonfagundes.blogspot.com/ - Página 12

Clique em Projetos => Bibliotecas => Adicionar JAR/pasta... E especifique o caminho do seu Driver de conexão: postgresql-8.2-xxx.jdbcxxx.jar Faça os imports e Compile a Classe Apertando a tecla F5 ou clicando com botão direito do mouse sobre o projeto, Clique em Limpar e Construir Robson Adão Fagundes - http://robsonfagundes.blogspot.com/ - Página 13

Faça os imports e Compile a Classe garanta que não haja erros!!! 7º Passo: Agora vamos criar a classe Dao, Responsável pela Persistência dos dados no Banco. Data Access Object: Dao é um modelo para persistir dados em aplicações é de banco de dados relacional. DAO (Data Access Object) é um padrão para persistência de dados que permite separar regras de negócio das regras de acesso a banco de dados. Numa aplicação que utilize a arquitetura MVC, todas as funcionalidades de bancos de dados, tais como obter as conexões, mapear objetos Java para tipos de dados SQL ou executar comandos SQL, devem ser feitas por classes de DAO. Robson Adão Fagundes - http://robsonfagundes.blogspot.com/ - Página 14

Seguindo... Criaremos um pacote chamado dao e uma classe também chamada de DaoPessoa.java Copie e cole o código abaixo na sua classe DaoPessoa.java package dao; import beans.pessoa; import conexao.conexao; import java.sql.preparedstatement; import java.sql.resultset; import java.sql.sqlexception; import java.util.arraylist; import java.util.list; /** * * @author rafsantos */ public class DaoPessoa { public DaoPessoa() { //GRAVAR //==================================== public boolean grava(pessoa pessoa) { try { PreparedStatement comandosql; comandosql = Conexao.getInstance().prepareStatement("insert into Pessoa (id, nome, email, telefone) values(?,?,?,?)"); comandosql.setlong(1, pessoa.getid()); comandosql.setstring(2, pessoa.getnome()); comandosql.setstring(3, pessoa.getemail()); comandosql.setstring(4, pessoa.gettelefone()); comandosql.execute(); Conexao.getInstance().commit(); return true; catch (SQLException e) { e.printstacktrace(); return false; //ALTERAR //==================================== public boolean atualiza(pessoa pessoa) { try { PreparedStatement comandosql; comandosql = Conexao.getInstance().prepareStatement("update Pessoa set nome =? where id =? "); comandosql.setstring(1, pessoa.getnome()); comandosql.setstring(2, pessoa.getemail()); comandosql.setstring(3, pessoa.gettelefone()); comandosql.execute(); Conexao.getInstance().commit(); catch (SQLException e) { Robson Adão Fagundes - http://robsonfagundes.blogspot.com/ - Página 15

e.printstacktrace(); return false; //DELETAR //===================================== public boolean deleta(pessoa pessoa) { try { PreparedStatement comandosql; comandosql = Conexao.getInstance().prepareStatement("delete from Pessoa where id =?"); comandosql.setlong(1, pessoa.getid()); comandosql.execute(); Conexao.getInstance().commit(); catch (SQLException e) { e.printstacktrace(); return false; //LISTAR TODOS //===================================== public List lista() { try { PreparedStatement comandosql; comandosql = Conexao.getInstance().prepareStatement("select * from Pessoa"); ResultSet rs = comandosql.executequery(); List arlpessoas = new ArrayList(); while (rs.next()) { Pessoa pess = new Pessoa(); pess.setid(rs.getlong("id")); pess.setnome(rs.getstring("nome")); pess.setemail(rs.getstring("email")); pess.settelefone(rs.getstring("telefone")); arlpessoas.add(pess); return arlpessoas; // conexao.commit(); catch (SQLException e) { e.printstacktrace(); return null; //CONSULTA ESPECIFICA POR CAMPOS //===================================== public Pessoa consulta(int pk) { try { PreparedStatement comandosql; comandosql = Conexao.getInstance().prepareStatement("select * from Robson Adão Fagundes - http://robsonfagundes.blogspot.com/ - Página 16

Pessoa where id=?"); comandosql.setint(1, pk); ResultSet rs = comandosql.executequery(); if (rs.next()) { Pessoa pess = new Pessoa(); pess.setid(rs.getlong("id")); pess.setnome(rs.getstring("nome")); pess.setemail(rs.getstring("email")); pess.settelefone(rs.getstring("telefone")); return pess; catch (SQLException e) { e.printstacktrace(); return null; Faça os imports e Compile a Classe garanta que não haja erros!!! Para que vocês entenderem o funcionamento da Classe Dao DaoPessoa.java Criada acima, farei o comentário do que cada linha do código explicando o que cada linha faz no nosso programa ok. Comentários do Código: Método Gravar(); //GRAVAR Cria o método do tipo boleean que retorna true se a operação for realizada com sucesso; e false se der algum erro de persistência no banco; Ele recebe o Bean no caso o Pessoa passado como parâmetro pela tela quando clicamos no botão gravar de nossa tela. O Bean Pessoa contem os dados digitados no JTEXTFIELD, passados a ele através dos Seters e Geters; public boolean grava(pessoa pessoa) { // cria um try, catch para retornar o true ou false try { // crio uma instancia da Classe PreparedStatement chamada de comandosql, A classe PreparedStatement é reponsavel pela Query com a base de dados PreparedStatement comandosql; // a instancia de comandosql ira receber uma instancia da classe conexão passando o código SQL no caso o INSERT, observe que os campos dever ser iguais as tabelas do banco. Os VALUES serão passados nas linhas abaixo por isso os????. A quantidade de?, deve ser igual ao numero de campos da tabela. comandosql = Conexao.getInstance().prepareStatement("insert into Pessoa (id, nome, email, telefone) values(?,?,?,?)"); // pega o valor do id do bean pessoa através do getid() e seto no comandosql com o tipo Long; o numero 1 significa que eh o primeiro campo da nossa tabela comandosql.setint(1, pessoa.getid()); Robson Adão Fagundes - http://robsonfagundes.blogspot.com/ - Página 17

// pega o valor do Nome do bean pessoa através do getnome() e seto no comandosql com o tipo String; o numero 2 significa que é o segundo campo da nossa tabela, os tipos Long, String, Date, estão definidos no nosso Beans o que o comandosql não sabe que tipo que eh por isso definimos ele através do setstring(2, pessoa.getnome()); comandosql.setstring(2, pessoa.getnome()); // o comentário de cima de aplica a todas as linhas abaixo por serem todos Strings a única diferença são os números dois campos das tabelas; comandosql.setstring(3, pessoa.getemail()); comandosql.setstring(4, pessoa.gettelefone()); // serve para qualquer tipo de comando SQL. Ele retorna true ou false dependendo se existe ou não um ResultSet ele ira executar nossos comando SQL; comandosql.execute(); // Faz todas as mudanças SQL e libera todos os fechamentos da base de dados prendidos atualmente por este objeto da conexão Conexao.getInstance().commit(); // se não ocorrer nenhum erro ele retornara True e nossos dados contidos no beans serão, armazenados no Banco; return true; // o catch tem q retornar uma SQLException para podermos identificar possíveis erros nos nossos códigos java ou SQL acima escritos catch (SQLException e) { // o e. printstacktrace ira imprimir o erro se houver e.printstacktrace(); // se houver o erro ele ira retornar false; return false; // fim do método Gravar Comentários do Código: Método Alterar(); ALTERAR // O Altera tem os mesmo comentários do método acima com exceção da linha que contem o código SQL que não será mais um INSERT e sim um UPDATE, observe que o que irá mudar é somente o nome do método e o código SQL contido na linha: comandosql = conexao.getinstance().preparestatement("update Pessoa set nome =? where id =? ); no resto da estrutura do método será igual os comentários do método Gravar(); Comentários do Código: Método Deletar(); DELETAR // O deletar tem os mesmo comentários do método acima com exceção da linha que contem o código SQL que não será mais um INSERT e sim um DELETE, observe que o que ira mudar é somente o nome do método e o código SQL contido na linha: comandosql = Conexao.getInstance().prepareStatement("delete from Pessoa Robson Adão Fagundes - http://robsonfagundes.blogspot.com/ - Página 18

where id =?"); observe que agora passamos somente o campo Id (que é a nossa chave primaria da tabela pessoas) só precisamos passar o ID porque o próprio banco apagar os demais campos relacionados a esse Id através do comando SQL. public boolean deleta(pessoa pessoa) { try { PreparedStatement comandosql; comandosql = Conexao.getInstance().prepareStatement("delete from Pessoa where id =?"); //passamos apenas o campo ID comandosql.setint(1, pessoa.getid()); comandosql.execute(); Conexao.getInstance().commit(); catch (SQLException e) { e.printstacktrace(); return false; 8º Passo: Agora vamos criar a Tela, Responsável pela captura dos dados informados pelo usuário. Criaremos uma classe do tipo gui (Graphical User Interface), ou seja, Interface Gráfica do Usuário utilizando a classe JFrame da API Swing. Swing é uma API Java para interfaces gráficas. Ela é compatível com a API AWT, mas trabalha de uma maneira totalmente diferente. A API Swing procura renderizar\desenhar por contra própria todos os componentes, ao invés de delegar essa tarefa ao sistema operacional, como a maioria das outras APIs de interface gráfica trabalham. Por ser uma API de mais alto nível, ou seja, mais abstração, menor aproximação das APIs do sistema operacional, ela tem bem menos performance que outras APIs gráficas e consome mais memória RAM em geral. Porém, ela é bem mais completa, e os programas que usam Swing têm uma aparência muito parecida, independente do Sistema Operacional utilizado. Seguindo... Criaremos um pacote chamado gui e dentro dele um Formulário JFrame, Chamado de TelaPessoa.java Clique com botão direito do mouse sobre o pacote gui, Novo => Formulario JFrame... Robson Adão Fagundes - http://robsonfagundes.blogspot.com/ - Página 19

Crie os campos que representarão os dados a serem persistidos, tente deixar a Tela com a seguinte aparência. Robson Adão Fagundes - http://robsonfagundes.blogspot.com/ - Página 20

Os Componentes da API Swing utilizados neste projeto são : JBotton : 4 Botões JPanel : 4 Painéis com Bordas e Titulo JTabbedPane : Com 2 JPanel que são as Abas: JTextField : 4 representam nossos dados a serem persistidos JTable : Abrigara todos as pessoas cadastradas Gravar Alterar Excluir Listar Fundo Ações Dados da Pessoa Lista de Pessoas Aba Cadastro Aba Consulta Código Nome Email Telefone Lista de Pessoas Robson Adão Fagundes - http://robsonfagundes.blogspot.com/ - Página 21

Tente deixar a Tela com a seguinte aparência: Robson Adão Fagundes - http://robsonfagundes.blogspot.com/ - Página 22

Agora vamos escrever o método que ira popular nossa tabela com os dados do banco; Dentro do código fonte no Inicio da Classe TelaPessoa.java dentro do método construtor após o método InitComponents(); crie a chamada para o método listarpessoas(); que ainda vamos criar dentro do código junto com os métodos, gravar, alterar, excluir e listar; Código do método TelaPessoas (); = Método Construtor da Classe copie e cole dentro da sua classe TelaPessoas. public TelaPessoas() { // inicia os componentes initcomponents(); // dispose da MP TelaPessoas.this.dispose(); // preenche a tabela com os dados Do BD com o dao listarpessoas(); Atributos que deveram, ser declarados no escopo global da classe TelaPessoas.java // instancia um novo objeto da classe Pessoa.java Pessoa pessoa = new Pessoa(); // instancia um novo objeto da classe DaoPessoa.java DaoPessoa daop = new DaoPessoa(); // variavel da tabela modelo Pessoa private DefaultTableModel tabelamodelopessoa; //Array List da tabela que ira popular a tabela List<Pessoa> arltabela = new ArrayList<Pessoa>(); Robson Adão Fagundes - http://robsonfagundes.blogspot.com/ - Página 23

No evento ActionPerformed do Botão Gravar crie a chamada para o método gravar que escreveremos ainda dentro da classe TelaPessoa; clique com botão direito do mouse sobre o botão em seguida em Eventos => Action = > actionperformad E cole o seguinte código: //Código do método ActionPerformed(); => Botão Gravar private void jbgravaractionperformed(java.awt.event.actionevent evt) { gravarpessoa(); Na parte do método main Crie o método gravar //Código do método gravarpessoa(); private void gravarpessoa() { pessoa.setid(new Integer(jtfId.getText())); pessoa.setnome(jtfnome.gettext()); pessoa.setemail(jtfemail.gettext()); pessoa.settelefone(jtftelefone.gettext()); daop.grava(pessoa); Robson Adão Fagundes - http://robsonfagundes.blogspot.com/ - Página 24

Repetir a ação para os demais métodos ou seja o mesmo devera ser feito para os botões Alterar e Excluir e Listar, segue os códigos fonte abaixo: //Código do método ActionPerformed(); => Botão Alterar private void jbalteraractionperformed(java.awt.event.actionevent evt) { AlterarPessoa(); //Código do método alterarpessoa(); private void alterarpessoa() { pessoa.setid(new Integer(jtfId.getText())); pessoa.setnome(jtfnome.gettext()); pessoa.setemail(jtfemail.gettext()); pessoa.settelefone(jtftelefone.gettext()); daop.atualiza(pessoa); //Código do método ActionPerformed (); => Botão Excluir private void jbexcluiractionperformed(java.awt.event.actionevent evt) { ExcluirPessoa(); //Código do método excluirpessoa(); private void deletarpessoa() { pessoa.setid(new Integer(jtfId.getText())); daop.deleta(pessoa); Faça os imports e Compile a Classe garanta que não haja erros!!! Pronto com isso já podemos Realizar as operações de CRUD (Create, Update Delete); Mais ainda falta o Listar para que possamos visualizar em tempo de execução da aplicação, os dados persistidos ou apagados do Banco. No Inicio da Classe TelaPessoa.java dentro do método construtor após o método InitComponents(); nos fizemos a chamada para o método listarpessoas(); Este método será executado quando a nossa tela for construída portanto antes de o usuário visualizar a tela os dados existentes no banco de dados serão listados na tabela. //Código do método listarpessoas(); public void preenchertabela() { try { arltabela.removeall(arltabela); arltabela = daop.lista(); for (int i = 0; i < arltabela.size(); i++) { Pessoa pess = (Pessoa) arltabela.get(i); Robson Adão Fagundes - http://robsonfagundes.blogspot.com/ - Página 25

Vector linha = new Vector(); linha.add(pess.getid()); linha.add(pess.getnome()); linha.add(pess.getemail()); linha.add(pess.gettelefone()); tabelamodelopessoa.addrow(linha); catch (Exception ex) { ex.printstacktrace(); System.out.println("iiiiii deu erro na Tebela..."); Pronto com isso, podemos testar a aplicação; 9º Passo: Clique em Projetos => Executar Robson Adão Fagundes - http://robsonfagundes.blogspot.com/ - Página 26

Robson Adão Fagundes - http://robsonfagundes.blogspot.com/ - Página 27

Robson Adão Fagundes - http://robsonfagundes.blogspot.com/ - Página 28

Conclusão: Esse tutorial fornece apenas uma simples introdução sobre o assunto, Os Exemplos aqui mostrados fazem uso de pouquíssimos recursos oferecidos por estas APIS. Lembre-se que com o estudo aprofundado sobre elas será possível desenvolver sistemas com: O envio de instruções SQL para qualquer banco de dados relacional; Possibilitar o uso de bancos de dados já instalados; Usar a API de baixo nível como base para API de alto nível, Usar recursos gráficos para apresentação e manipulação de dados. Robson Adão Fagundes (http://robsonfagundes.blogspot.com) Analista de Sistemas Pleno e Docente das Disciplinas de Engenharia de Software II e Multimídia e Desenvolvimento Web do Curso de Sistemas de Informação da Faculdade Iguaçu Capanema - PR Robson Adão Fagundes - http://robsonfagundes.blogspot.com/ - Página 29