SlideShare uma empresa Scribd logo
1 de 7
Baixar para ler offline
Msc: Paulo Muedi
DAO ( Date Acess Object)
Objeto de acesso a dados
Objeto de acesso a dados (ou simplesmente DAO, acrônimo de 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.
Ex:
Msc: Paulo Muedi
Vantagens
A vantagem de usar objetos de acesso a dados é a separação simples e rigorosa
entre duas partes importantes de uma aplicação que não devem e não podem
conhecer quase que nada uma da outra, e que podem evoluir frequentemente e
independentemente. Alterar a lógica de negócio podem esperar apenas a
implementação de uma interface, enquanto que modificações na lógica de
persistência não alteram a lógica de negocio, desde que a interface entre elas
não seja modificada.
 Pode ser usada em uma vasta percentagem de aplicações;
 Esconde todos os detalhes relativos a armazenamento de dados do resto da
aplicação;
 Atua como um intermediário entre a aplicação e o banco de dados;
 Mitiga ou resolve problemas de comunicação entre a base de dados e a
aplicação, evitando estados inconsistentes de dados.
No contexto específico da linguagem de programação Java, um objeto de acesso
a dados como padrão de projeto de software pode ser implementado de várias
maneiras. Pode variar desde uma simples interface que separa partes de acesso
a dados da lógica de negócio de uma aplicação até frameworks e produtos
comerciais específicos. Os paradigmas para programação usando DAOs
demandam alguma proficiência. O uso de tecnologias como Java persistence
technologies e JDO garantem a implementação do padrão de projeto até certo
ponto. Tecnologias comoEnterprise JavaBeans trazem para a aplicação
servidores montados e que podem ser usados em aplicações que usem um
servidor de aplicação JEE. Produtos comerciais como o TopLink estão
disponíveis, baseados em mapeamento objeto-relacional (ORM). Produtos ORM
populares em código aberto incluem Doctrine, Hibernate, iBATIS e Apache
OpenJPA.
Msc: Paulo Muedi
Arquitetura MVC, BEAN, DAO e BO
MVC
O MVC (Model, View e Controller) é uma arquitetura ou padrão que lhe
permite dividir as funcionalidades de seu sistema/site em camadas, essa
divisão é realizada para facilitar resolução de um problema maior.
Definição por camadas
Modelo
O modelo (Model) é utilizado para manipular informações de forma
mais detalhada, sendo recomendado que, sempre que possível, se utilize dos
modelos para realizar consultas, cálculos e todas as regras de negócio do
nosso site ou sistema. É o modelo que tem acesso a toda e qualquer
informação sendo essa vinda de um banco de dados, arquivo XML.
Visão
A visão (view) é responsável por tudo que o usuário final visualiza, toda a
interface, informação, não importando sua fonte de origem, é exibida graças a
camada de visão.
Controladora
A Controladora (controller), como o nome já sugere, é responsável por
Msc: Paulo Muedi
controlar todo o fluxo de informação que passa pelo site/sistema. É na
controladora que se decide “se”, “o que”, “quando” e “onde” deve funcionar.
Define quais informações devem ser geradas, quais regras devem ser
acionadas e para onde as informações devem ir, é na controladora que essas
operações devem ser executadas.
BO (Business Object)
Objeto de negócios (BO) são usados em programação orientada a objeto, ele é
uma representação de partes de um negócio, este pode representar, por
exemplo, uma pessoa, lugar, evento, processo de negócio ou conceito.
Embora as classes podem conter execução ou comportamentos de gestão, um
objeto de negócio é geralmente inerte a conjuntos de titulação de variáveis de
instância ou propriedades. Um BO também pode fazer solicitações de
dados do cliente para o Data Access Object (DAO)
BEAN
Praticamente são classes escritas de acordo com uma convenção em
particular. São usados para encapsular muitos objetos em um único objeto (o
bean), assim eles podem ser transmitidos como um único objeto em vez de
vários objetos individuais. O JavaBean é um Objeto Java que é serializavel,
possui um construtor nulo e permite acesso às suas propriedades através de
métodos getter e setter.
DAO
O DAO funciona como um tradutor dos mundos. Suponha um banco relacional.
O DAO deve saber buscar os dados do banco e converter em objetos para ser
usado pela aplicação. Semelhantemente, deve saber como pegar os objetos,
converter em instruções SQL e mandar para o banco de dados. É assim que
um DAO trabalha.
Geralmente, temos um DAO para cada objeto do domínio do sistema (Produto,
Cliente, Compra, etc.), ou então para cada módulo, ou conjunto de entidades
fortemente relacionadas.
Msc: Paulo Muedi
EXEMPLO UTILIZANDO BEAN, BO e DAO
Msc: Paulo Muedi
Classe BEAN
public class Pessoa {
private String nome;
private String idade;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getIdade() {
return idade;
}
public void setIdade(String idade) {
this.idade = idade;
}
}
Classe BO
public class PessoaBO {
Msc: Paulo Muedi
public void novaPessoa(Pessoa pessoa) {
new PessoaDAO().savePessoa(pessoa)
}
public List<Pessoa> PegarPessoas(){
new PessoaDAO().getPessoas();
}
}
Classe DAO
public class PessoaDAO {
public void savePessoa(Pessoa pessoa){
//CODIFICAÇÃO AKI
}
public void deletePessoa(Pessoa pessoa){
//CODIFICAÇÃO AKI
}
public List<Pessoa> getPessoas(){
//CODIFICAÇÃO AKI
return list;
}
}

Mais conteúdo relacionado

Mais procurados

Introdução ao JPA com Hibernate
Introdução ao JPA com HibernateIntrodução ao JPA com Hibernate
Introdução ao JPA com Hibernate
Danilo Braga
 
Java Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e ServletsJava Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e Servlets
Eduardo Mendes
 
Apostila de sql basico
Apostila de sql basicoApostila de sql basico
Apostila de sql basico
Fernando Palma
 

Mais procurados (18)

Jsp+Jdbc+Servlets
Jsp+Jdbc+ServletsJsp+Jdbc+Servlets
Jsp+Jdbc+Servlets
 
Projeto de Software (Protótipo de Software).
Projeto de Software (Protótipo de Software).Projeto de Software (Protótipo de Software).
Projeto de Software (Protótipo de Software).
 
Introdução ao JPA com Hibernate
Introdução ao JPA com HibernateIntrodução ao JPA com Hibernate
Introdução ao JPA com Hibernate
 
ORM e EF
ORM e EFORM e EF
ORM e EF
 
Asp net mvc
Asp net mvcAsp net mvc
Asp net mvc
 
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrõesMC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
 
JPA INTRODUÇÃO
JPA INTRODUÇÃOJPA INTRODUÇÃO
JPA INTRODUÇÃO
 
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EEUso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
 
Apresentação em Projeto de Sistemas – Entity Framework
Apresentação em Projeto de Sistemas – Entity FrameworkApresentação em Projeto de Sistemas – Entity Framework
Apresentação em Projeto de Sistemas – Entity Framework
 
Arquitetura de sistemas web
Arquitetura de sistemas webArquitetura de sistemas web
Arquitetura de sistemas web
 
Knockout JS - Uma framework para aplicações web
Knockout JS - Uma framework para aplicações webKnockout JS - Uma framework para aplicações web
Knockout JS - Uma framework para aplicações web
 
Aula 3 banco de dados
Aula 3   banco de dadosAula 3   banco de dados
Aula 3 banco de dados
 
Java Web 1 Introducao
Java Web 1 IntroducaoJava Web 1 Introducao
Java Web 1 Introducao
 
Aula1
Aula1Aula1
Aula1
 
Extreme 360 Arquitetura para Aplicações Delphi Spring4D - OOP e RAD
Extreme 360 Arquitetura para Aplicações Delphi Spring4D - OOP e RADExtreme 360 Arquitetura para Aplicações Delphi Spring4D - OOP e RAD
Extreme 360 Arquitetura para Aplicações Delphi Spring4D - OOP e RAD
 
KnockoutJS com ASP.NET MVC3: Utilização na vida real
KnockoutJS com ASP.NET MVC3: Utilização na vida realKnockoutJS com ASP.NET MVC3: Utilização na vida real
KnockoutJS com ASP.NET MVC3: Utilização na vida real
 
Java Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e ServletsJava Web - MVC básico com JSP e Servlets
Java Web - MVC básico com JSP e Servlets
 
Apostila de sql basico
Apostila de sql basicoApostila de sql basico
Apostila de sql basico
 

Destaque

Дайджест октябрь 2013
Дайджест октябрь 2013Дайджест октябрь 2013
Дайджест октябрь 2013
OporaRussiaMoscow
 
Hoan thien he thong xhtd vietcombank
Hoan thien he thong xhtd vietcombankHoan thien he thong xhtd vietcombank
Hoan thien he thong xhtd vietcombank
lethitien
 

Destaque (13)

Cobertura del proceso electoral escolar 20152
Cobertura del proceso electoral escolar 20152Cobertura del proceso electoral escolar 20152
Cobertura del proceso electoral escolar 20152
 
Дайджест октябрь 2013
Дайджест октябрь 2013Дайджест октябрь 2013
Дайджест октябрь 2013
 
Catalogo Jaus
Catalogo JausCatalogo Jaus
Catalogo Jaus
 
Hoan thien he thong xhtd vietcombank
Hoan thien he thong xhtd vietcombankHoan thien he thong xhtd vietcombank
Hoan thien he thong xhtd vietcombank
 
Reglas del lenguaje saia sabri
Reglas del lenguaje saia sabriReglas del lenguaje saia sabri
Reglas del lenguaje saia sabri
 
Акция «Внимание, дети!»
Акция «Внимание, дети!»Акция «Внимание, дети!»
Акция «Внимание, дети!»
 
Protect yourself: What's yours is yours (If it's legally yours) Stories from ...
Protect yourself: What's yours is yours (If it's legally yours) Stories from ...Protect yourself: What's yours is yours (If it's legally yours) Stories from ...
Protect yourself: What's yours is yours (If it's legally yours) Stories from ...
 
Film the first revolution
Film the first revolutionFilm the first revolution
Film the first revolution
 
Curriculum
CurriculumCurriculum
Curriculum
 
CV-0566486844
CV-0566486844CV-0566486844
CV-0566486844
 
How to Get Noticed at Work (Infographic)
How to Get Noticed at Work (Infographic)How to Get Noticed at Work (Infographic)
How to Get Noticed at Work (Infographic)
 
475 2015 media effects methods up
475 2015 media effects methods up475 2015 media effects methods up
475 2015 media effects methods up
 
Acethia's brochure
Acethia's brochureAcethia's brochure
Acethia's brochure
 

Semelhante a Dao

Curso De Hibernate 3
Curso De Hibernate 3Curso De Hibernate 3
Curso De Hibernate 3
Joel Lobo
 
Orientação a Objetos no Delphi - Controle de Estoque (II)
Orientação a Objetos no Delphi - Controle de Estoque (II)Orientação a Objetos no Delphi - Controle de Estoque (II)
Orientação a Objetos no Delphi - Controle de Estoque (II)
Ryan Padilha
 
CURSO DELPHI FUND. CLIENT SERVER (DIURNO)
CURSO DELPHI FUND. CLIENT SERVER (DIURNO) CURSO DELPHI FUND. CLIENT SERVER (DIURNO)
CURSO DELPHI FUND. CLIENT SERVER (DIURNO)
Grupo Treinar
 
Framework Entities na CBSoft
Framework Entities na CBSoftFramework Entities na CBSoft
Framework Entities na CBSoft
Marcius Brandão
 

Semelhante a Dao (20)

Odi tutorial glossário e termos técnicos
Odi tutorial   glossário e termos técnicosOdi tutorial   glossário e termos técnicos
Odi tutorial glossário e termos técnicos
 
Curso De Hibernate 3
Curso De Hibernate 3Curso De Hibernate 3
Curso De Hibernate 3
 
Modelagem de sistemas
Modelagem de sistemasModelagem de sistemas
Modelagem de sistemas
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
 
Padrões de projeto - Martin Fowler - P of EAA
Padrões de projeto - Martin Fowler - P of EAAPadrões de projeto - Martin Fowler - P of EAA
Padrões de projeto - Martin Fowler - P of EAA
 
Indo alem do_mvc_node_js
Indo alem do_mvc_node_jsIndo alem do_mvc_node_js
Indo alem do_mvc_node_js
 
Treinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVCTreinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVC
 
Orientação a Objetos no Delphi - Controle de Estoque (II)
Orientação a Objetos no Delphi - Controle de Estoque (II)Orientação a Objetos no Delphi - Controle de Estoque (II)
Orientação a Objetos no Delphi - Controle de Estoque (II)
 
Apostila Oracle 10g
Apostila Oracle 10gApostila Oracle 10g
Apostila Oracle 10g
 
Banco de dados_orientado_a_objetos
Banco de dados_orientado_a_objetosBanco de dados_orientado_a_objetos
Banco de dados_orientado_a_objetos
 
teste86940.78038637294
teste86940.78038637294teste86940.78038637294
teste86940.78038637294
 
CURSO DELPHI FUND. CLIENT SERVER (DIURNO)
CURSO DELPHI FUND. CLIENT SERVER (DIURNO) CURSO DELPHI FUND. CLIENT SERVER (DIURNO)
CURSO DELPHI FUND. CLIENT SERVER (DIURNO)
 
Programação Web com Zend Framework e Ajax com Dojo
Programação Web com Zend Framework e Ajax com DojoProgramação Web com Zend Framework e Ajax com Dojo
Programação Web com Zend Framework e Ajax com Dojo
 
Domain-Driven Design - Uma Abordagem Introdutória
Domain-Driven Design - Uma Abordagem IntrodutóriaDomain-Driven Design - Uma Abordagem Introdutória
Domain-Driven Design - Uma Abordagem Introdutória
 
Artigo oo em bd
Artigo   oo em bdArtigo   oo em bd
Artigo oo em bd
 
Framework Entities na CBSoft
Framework Entities na CBSoftFramework Entities na CBSoft
Framework Entities na CBSoft
 
Treinamento DDD .Net
Treinamento DDD .NetTreinamento DDD .Net
Treinamento DDD .Net
 
Apresentação curso de Extensão em Java (UERJ-IME) v1
Apresentação curso de Extensão em Java (UERJ-IME) v1Apresentação curso de Extensão em Java (UERJ-IME) v1
Apresentação curso de Extensão em Java (UERJ-IME) v1
 
Java para web na pratica
Java para web na praticaJava para web na pratica
Java para web na pratica
 
Framework Entities
Framework EntitiesFramework Entities
Framework Entities
 

Dao

  • 1. Msc: Paulo Muedi DAO ( Date Acess Object) Objeto de acesso a dados Objeto de acesso a dados (ou simplesmente DAO, acrônimo de 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. Ex:
  • 2. Msc: Paulo Muedi Vantagens A vantagem de usar objetos de acesso a dados é a separação simples e rigorosa entre duas partes importantes de uma aplicação que não devem e não podem conhecer quase que nada uma da outra, e que podem evoluir frequentemente e independentemente. Alterar a lógica de negócio podem esperar apenas a implementação de uma interface, enquanto que modificações na lógica de persistência não alteram a lógica de negocio, desde que a interface entre elas não seja modificada.  Pode ser usada em uma vasta percentagem de aplicações;  Esconde todos os detalhes relativos a armazenamento de dados do resto da aplicação;  Atua como um intermediário entre a aplicação e o banco de dados;  Mitiga ou resolve problemas de comunicação entre a base de dados e a aplicação, evitando estados inconsistentes de dados. No contexto específico da linguagem de programação Java, um objeto de acesso a dados como padrão de projeto de software pode ser implementado de várias maneiras. Pode variar desde uma simples interface que separa partes de acesso a dados da lógica de negócio de uma aplicação até frameworks e produtos comerciais específicos. Os paradigmas para programação usando DAOs demandam alguma proficiência. O uso de tecnologias como Java persistence technologies e JDO garantem a implementação do padrão de projeto até certo ponto. Tecnologias comoEnterprise JavaBeans trazem para a aplicação servidores montados e que podem ser usados em aplicações que usem um servidor de aplicação JEE. Produtos comerciais como o TopLink estão disponíveis, baseados em mapeamento objeto-relacional (ORM). Produtos ORM populares em código aberto incluem Doctrine, Hibernate, iBATIS e Apache OpenJPA.
  • 3. Msc: Paulo Muedi Arquitetura MVC, BEAN, DAO e BO MVC O MVC (Model, View e Controller) é uma arquitetura ou padrão que lhe permite dividir as funcionalidades de seu sistema/site em camadas, essa divisão é realizada para facilitar resolução de um problema maior. Definição por camadas Modelo O modelo (Model) é utilizado para manipular informações de forma mais detalhada, sendo recomendado que, sempre que possível, se utilize dos modelos para realizar consultas, cálculos e todas as regras de negócio do nosso site ou sistema. É o modelo que tem acesso a toda e qualquer informação sendo essa vinda de um banco de dados, arquivo XML. Visão A visão (view) é responsável por tudo que o usuário final visualiza, toda a interface, informação, não importando sua fonte de origem, é exibida graças a camada de visão. Controladora A Controladora (controller), como o nome já sugere, é responsável por
  • 4. Msc: Paulo Muedi controlar todo o fluxo de informação que passa pelo site/sistema. É na controladora que se decide “se”, “o que”, “quando” e “onde” deve funcionar. Define quais informações devem ser geradas, quais regras devem ser acionadas e para onde as informações devem ir, é na controladora que essas operações devem ser executadas. BO (Business Object) Objeto de negócios (BO) são usados em programação orientada a objeto, ele é uma representação de partes de um negócio, este pode representar, por exemplo, uma pessoa, lugar, evento, processo de negócio ou conceito. Embora as classes podem conter execução ou comportamentos de gestão, um objeto de negócio é geralmente inerte a conjuntos de titulação de variáveis de instância ou propriedades. Um BO também pode fazer solicitações de dados do cliente para o Data Access Object (DAO) BEAN Praticamente são classes escritas de acordo com uma convenção em particular. São usados para encapsular muitos objetos em um único objeto (o bean), assim eles podem ser transmitidos como um único objeto em vez de vários objetos individuais. O JavaBean é um Objeto Java que é serializavel, possui um construtor nulo e permite acesso às suas propriedades através de métodos getter e setter. DAO O DAO funciona como um tradutor dos mundos. Suponha um banco relacional. O DAO deve saber buscar os dados do banco e converter em objetos para ser usado pela aplicação. Semelhantemente, deve saber como pegar os objetos, converter em instruções SQL e mandar para o banco de dados. É assim que um DAO trabalha. Geralmente, temos um DAO para cada objeto do domínio do sistema (Produto, Cliente, Compra, etc.), ou então para cada módulo, ou conjunto de entidades fortemente relacionadas.
  • 5. Msc: Paulo Muedi EXEMPLO UTILIZANDO BEAN, BO e DAO
  • 6. Msc: Paulo Muedi Classe BEAN public class Pessoa { private String nome; private String idade; public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public String getIdade() { return idade; } public void setIdade(String idade) { this.idade = idade; } } Classe BO public class PessoaBO {
  • 7. Msc: Paulo Muedi public void novaPessoa(Pessoa pessoa) { new PessoaDAO().savePessoa(pessoa) } public List<Pessoa> PegarPessoas(){ new PessoaDAO().getPessoas(); } } Classe DAO public class PessoaDAO { public void savePessoa(Pessoa pessoa){ //CODIFICAÇÃO AKI } public void deletePessoa(Pessoa pessoa){ //CODIFICAÇÃO AKI } public List<Pessoa> getPessoas(){ //CODIFICAÇÃO AKI return list; } }