Modulo 8 - Padrão DAO (Dta Access Object) Prof. Sheila Cáceres

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

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

Java - Conexão ao Banco de Dados usando JDBC

Agenda. Instalação e configuração. Processamento de comandos SQL com JDBC. Driver JDBC Criação da classe de conexão

Programação Orientada a Objetos II


DATA ACCESS OBJECT (DAO)

Lista de exercícios I - RESPOSTAS Servlets e banco de dados

De forma simples, para a execução de comandos SQL com JDBC, precisa-se da instancia de três classes Java. São elas: Nome da classe Função

Código-Fonte da Prática 02

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

Padrões de Projeto e Persistência com DAO

Web Services. EclipseSDK/DB2 Construindo/Consumindo Serviços

Como criar um banco de dados usando o mysql

JDBC - Java Data Base Connectivity

JDBC com Banco de Dados Standalone

PERSISTÊNCIA EM JAVA. Introdução. Conexão a banco de dados através do driver JDBC UNIDADEE

Persistência Java para Web com MySQL

JDBC. Prof. Márcio Bueno

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

Especialização em web com interfaces ricas

Exercícios de fixação: Listas

Programação Orientada a Objetos JDBC Java Database Connectivity

Drive MySql de conexão para Eclipse

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

Programação Orientada a Objetos II

Banco de Dados. Banco de Dados

CONEXÃO JAVA - BANCO DE DADOS

Módulo 5. Programação Orientada a Objetos. Programação Orientada a Objetos I Java (Rone Ilídio)

Integrando Java com Banco de Dados

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

Projeto webservicejax

Conexão do Banco de Dados localhost

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.

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

Estrutura do Projeto - Trabalhando com Banco de Dados

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

MANIPULAÇÃO DE BANCO DE DADOS UTILIZANDO INTERFACE GRÁFICA

JavaServer Faces JSF

Java JDBC Aplicação Java com Acesso a um SGBD. Ricardo Terra (rterrabh [at] gmail.com) Java JDBC Maio, 2010

JDBC - Java Data Base Connectivity

Banco de Dados. Banco de Dados. Alcides Pamplona Alcides Pamplona Linguagem de Programação CESBD 2010

Mecanismo de Persistência

Driver Mysql para Banco de Dados. Conexão com um Banco de Dados

SISTEMA EXPERIMENTALL 15/11/2009. Olá a Todos!

JDBC Acessando Banco de Dados

Banco de dados POO Márcio Delamaro. Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP

JDBC. Java DataBase Connectivity

JPA: Persistência padronizada em Java

Aula Prática JBCD - Introdução

Persistência de Classes em Tabelas de Banco de Dados

Acesso a banco de dados

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

DSS 09/10. DSS 09/10 Que métodos é que fazem parte de cada camada? Aplicações Multi-camada JDBC. Aula 3 DSS 09/10

Java e Conexão com Banco de Dados

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 9- Introdução ao JDBC

UFG - Instituto de Informática

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

Introdução à Tecnologia Java 02/2012. Java Aula 06. Banco de Dados Exemplo com JTable 19/09/2012. Celso Olivete Júnior.

JDBC JDBC. JDBC - Arquitetura. JDBC Arquitetura Pacote Java.sql. Java Database Connectivity JDBC PostgreSQL

Java Básico JDBC. Razer Anthom Nizer Rojas Montaño Banco de Dados: JDBC

Lista de Exercícios da disciplina Aplicações de Linguagem de Programação Orientada a objetos

Faça Fácil Proficy Historian e SQL Linked Server

Unidade 12: Programação de Banco de Dados com Java Prof. Daniel Caetano

Desenvolvimento para Web em Java. Profa Andréa Schwertner Charão DLSC/CT/UFSM Lamarck Heinsch Mestrando PPGI/CT/UFSM

Acesso a Bancos de Dados em Java (JDBC)

Curso de Java. Acesso a banco de dados através de JDBC. Todos os direitos reservados Klais

Instituto Federal de Educação, Ciência e Tecnologia do Ceará IFCE Programa Educacional Brasileiro de Desenvolvimento para ios BEPiD PROVA OBJETIVA

PROFICY HISTORIAN E SQL LINKED SERVER

Faça Fácil. Proficy Historian e SQL Linked Server

Desenvolvimento de Sistemas de Informação

J550 Integração com Bancos de Dados

JAVA COM BANCO DE DADOS PROFESSORA DANIELA PIRES

Java na WEB Banco de Dados

Introdução à Tecnologia Java 02/2012. Java Aula 05 12/09/2012. Celso Olivete Júnior.

Implementar um exemplo de relacionamento entre classes um para muitos (1:N) e um para um (1:1). Sistema para uma Promotora de Evento Agenda Anual

Autenticação e Autorização

Banco de Dados. Sérgio Luiz Ruivace Cerqueira

Programação em Rede JDBC

Desenvolvimento de Aplicaçõ. ções em Java

Interfaces POO. Prof. Marcio Delamaro

Computação II - Java - Prova 1 Prof. Adriano Joaquim de Oliveira Cruz /05/13. Questão: Total Pontos: Gráu:

Aula 08 Encapsulamento. Disciplina: Programação Estruturada e Orientada a Objetos Prof. Bruno Gomes

1) Responda de acordo com os conceitos de orientação a objetos (0,5).

Vamos falar de Hibernate?

Computação II - Java - Teste 1.2 Prof. Adriano Joaquim de Oliveira Cruz 2015/04/27

Programação Orientada a Objetos SANTOS, Rafael (PLT)

Linguagens de Programação

Linguagem de Programação Orientada a Objeto Abstração - Encapsulamento

Código-Fonte da Prática 04

Programação Orientada a Objetos (DPADF 0063)

Linguagem de Programação II Implementação

PRDS /01/2013. Ricardo A. Venieris Rodnei Couto

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

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

Linguagem de Programação Orientada a Objeto Construtores e Sobrecarga

Aplicativos Web com Orientação a Objetos

Tipos, Literais, Operadores

Tipos, Literais, Operadores

Transcrição:

Aplicações de Linguagem de Programação Orientada a Objetos Modulo 8 - Padrão DAO (Dta Access Object) Prof. Sheila Cáceres O padrão de projeto DAO surgiu para facilitar a comunicação entre as camadas de negócio e de persistência. Seguindo este padrão, é possível substituir uma sequência complexa de troca de comandos entre a aplicação e o banco de dados por uma única chamada do tipo inserir(objeto) ou apagar(objeto). // Pessoa.java public class Pessoa { private int id; private String nome; private String sobrenome; private int idade; // ************ Constructores ******************* public Pessoa(int id, String nome) { this.id = id; this.nome = nome; public Pessoa(int id, String nome, String sobrenome, int idade) { this.id = id; this.nome = nome; this.sobrenome = sobrenome; this.idade = idade; // ************* Gets e Sets ******************** public String getnome() { return nome; public void setnome(string name) { this.nome = name; public int getid() { return id; public void setid(int id) { this.id = id; public String getsobrenome() { return sobrenome; public void setsobrenome(string sobrenome) { this.sobrenome = sobrenome; public int getidade() { return idade; public void setidade(int idade) { this.idade = idade; // IPessoaDao.java public interface IPessoaDao { public List<Pessoa> getallpessoas(); public Pessoa findpessoa(int id); public void insertpessoa (Pessoa pessoa); public void updatepessoa(pessoa pessoa); public void deletepessoa(pessoa pessoa);

// PessoaDaoList.java import java.util.arraylist; public class PessoaDaoList implements IPessoaDao { // *** Esta lista está substituindo um banco de dados *** List<Pessoa> pessoas; public PessoaDaoList(){ pessoas = new ArrayList<Pessoa>(); public void insertpessoa(pessoa pessoa) { pessoas.add(pessoa); public void deletepessoa(pessoa pessoa) { pessoas.remove(pessoa); System.out.println("Pessoa: Id " + pessoa.getid() +" apagada da lista (bd)"); // Recupera a lista de estudantes public List<Pessoa> getallpessoas() { return pessoas; public Pessoa findpessoa(int id) { public void updatepessoa(pessoa newpessoa) { // A pessoa já foi atualizada ao usar as funções set. System.out.println("A Pessoa com Id: " + newpessoa.getid() +", foi atualizada na lista (bd)"); // PessoaDaoJDBC.java import java.sql.connection; import java.sql.drivermanager; import java.sql.resultset; import java.sql.sqlexception; import java.sql.statement; import java.util.arraylist; public class PessoaDaoJDBC implements IPessoaDao{ private String driver = "org.postgresql.driver"; private String susuario = "postgres"; private String ssenha = "root"; private String sfonte = "jdbc:postgresql://localhost:5432/postgres"; private Connection con; private Statement st;

public PessoaDaoJDBC(){ this.criartabela(); public void openconnection(){ try { Class.forName(driver); con = DriverManager.getConnection(sFonte, susuario, ssenha); catch (Exception e) { // demais exceções e.printstacktrace(); System.out.println("Falha com o driver ou com a conexão com o banco!\n" +e.getmessage()); System.exit(0); /* Cria a Tabela pessoa no banco de dados postgres public void criartabela(){ System.out.print("Criando a tabela pessoa: "); String sentencasql = "CREATE TABLE pessoa (id integer PRIMARY KEY, nome VARCHAR(50), sobrenome VARCHAR(50), idade integer );"; this.atualizar(sentencasql); /* Realiza updates no banco de dados. public void atualizar(string sentencasql){ try{ this.openconnection(); st = con.createstatement();// cria statement para consultar banco de dados st.executeupdate(sentencasql); System.out.println("Update com sucesso!"); st.close(); con.close(); catch (SQLException esql) { esql.printstacktrace(); System.out.println("Não foi possível realizar o update!\n" + esql.getmessage()); System.exit(2); /* Realiza uma consulta sobre a tabela pessoa e retorna uma lista contendo objetos Pessoa public List<Pessoa> consultarpessoas(string setencasql){ List<Pessoa> pessoas = new ArrayList<Pessoa>(); try { this.openconnection(); st = con.createstatement(); ResultSet rs = st.executequery(setencasql); while (rs.next()) { Pessoa p=new Pessoa(rs.getInt("id"), rs.getstring("nome"), rs.getstring("sobrenome"), rs.getint("idade")); pessoas.add(p); rs.close(); st.close(); con.close();

catch (SQLException esql) { System.out.print("Erro na consulta SQL" + esql.getmessage() ); System.exit(1); return pessoas; public void insertpessoa (Pessoa pessoa){ System.out.print("Inserindo uma pessoa: "); String sentencasql = "INSERT INTO pessoa values("+pessoa.getid() +"," + "'"+pessoa.getnome() +"','"+pessoa.getsobrenome() +"',"+pessoa.getidade()+");"; this.atualizar(sentencasql); public void updatepessoa(pessoa pessoa) { public List<Pessoa> getallpessoas() { return this.consultarpessoas("select * FROM pessoa;"); public Pessoa findpessoa(int id) { return null; public void deletepessoa(pessoa pessoa) { // DaoPatternDemo.java public class DaoPatternDemo { public static void main(string[] args) { Pessoa pessoa0 = new Pessoa(0, "Joao", "Pereira", 25); Pessoa pessoa1 = new Pessoa(1, "Roberto", "Carvalho",30); Pessoa pessoa2 = new Pessoa(2, "Maria", "Ferraz",50); // Podemos usar qualquer implementacao de IPessoaDao IPessoaDao pessoadao =new PessoaDaoList();// Ex: PessoaDaoList, PessoaDaoJDBC // Inserindo pessoas pessoadao.insertpessoa(pessoa0); pessoadao.insertpessoa(pessoa1); pessoadao.insertpessoa(pessoa2); for (Pessoa pessoa : pessoadao.getallpessoas()) {

System.out.println("Pessoa => [Id: " + pessoa.getid()+ ", Nome : " + pessoa.getnome() + ", Sobrenome : " + pessoa.getsobrenome() + ", Idade : " + pessoa.getidade() + " ]"); // update pessoa Pessoa pessoa = pessoadao.getallpessoas().get(0); pessoa.setnome("michael"); pessoa.setsobrenome("da Silva"); pessoadao.updatepessoa(pessoa); System.out.println("Pessoa Atualizada => [Id: " + pessoa.getid()+ ", Nome : " + pessoa.getnome() + ", Sobrenome : " + pessoa.getsobrenome() + ", Idade : " + pessoa.getidade() + " ]"); pessoadao.deletepessoa(pessoa0); //Apagar uma pessoa Pessoa p= pessoadao.findpessoa(1); //Achar uma pessoa System.out.println("O nome da pessoa achada é: "+p.getnome()); EXERCICIOS PARA LABORATÓRIO 1) Implemente as funções faltantes nas classes PessoaDaoList e PessoaDaoJDBC 2) Adicione outra classe que implemente a interface IpessoaDao e teste desde DaoPatternDemo.java 3) Adicione interfaces gráficas (pode se basear no JTable visto anteriormente)