SlideShare uma empresa Scribd logo
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

DOCX
Camadas
PPTX
Conceitos de Java Web
ODP
Arquitetura MVC, JavaBeans e DAO
PDF
Apostila Java Web com JSF, JPA e Primefaces
PDF
Dicas e truques sobre performance em JavaEE, JPA e JSF
ODP
Ajaxificando
PDF
Apresentação Java Web - Jsf+Hibernate
PPTX
Aula 2 banco de dados
Camadas
Conceitos de Java Web
Arquitetura MVC, JavaBeans e DAO
Apostila Java Web com JSF, JPA e Primefaces
Dicas e truques sobre performance em JavaEE, JPA e JSF
Ajaxificando
Apresentação Java Web - Jsf+Hibernate
Aula 2 banco de dados

Mais procurados (18)

PPT
Jsp+Jdbc+Servlets
PPTX
Projeto de Software (Protótipo de Software).
PDF
Introdução ao JPA com Hibernate
PPTX
PPT
PDF
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
PDF
PPTX
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
PPTX
Apresentação em Projeto de Sistemas – Entity Framework
PPT
Arquitetura de sistemas web
PDF
Knockout JS - Uma framework para aplicações web
PPTX
Aula 3 banco de dados
PDF
Java Web 1 Introducao
PPT
Aula1
PPTX
Extreme 360 Arquitetura para Aplicações Delphi Spring4D - OOP e RAD
PPTX
KnockoutJS com ASP.NET MVC3: Utilização na vida real
PDF
Java Web - MVC básico com JSP e Servlets
PDF
Apostila de sql basico
Jsp+Jdbc+Servlets
Projeto de Software (Protótipo de Software).
Introdução ao JPA com Hibernate
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
Apresentação em Projeto de Sistemas – Entity Framework
Arquitetura de sistemas web
Knockout JS - Uma framework para aplicações web
Aula 3 banco de dados
Java Web 1 Introducao
Aula1
Extreme 360 Arquitetura para Aplicações Delphi Spring4D - OOP e RAD
KnockoutJS com ASP.NET MVC3: Utilização na vida real
Java Web - MVC básico com JSP e Servlets
Apostila de sql basico
Anúncio

Destaque (11)

PPTX
Конференция Dive in Marketing
PPTX
Trip Plan
PPTX
Where fashion meets technology -get updates on the Go
PPTX
Augmented Reality
PDF
DOCX
Reglamento de-lol-code game
PDF
Software Enigineer
PPTX
Kamera Aksi - Action Camera
PPTX
Конференция "РИФ+КИБ 2016"
PDF
SemBook. Глава 8. Инструментарий для продвижения
PDF
Книга Performance (ознакомительный фрагмент)
Конференция Dive in Marketing
Trip Plan
Where fashion meets technology -get updates on the Go
Augmented Reality
Reglamento de-lol-code game
Software Enigineer
Kamera Aksi - Action Camera
Конференция "РИФ+КИБ 2016"
SemBook. Глава 8. Инструментарий для продвижения
Книга Performance (ознакомительный фрагмент)
Anúncio

Semelhante a Data accesss conect (20)

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

Data accesss conect

  • 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; } }