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

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 Avantagem 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 ArquiteturaMVC, 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 controlartodo 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 EXEMPLOUTILIZANDO BEAN, BO e DAO
  • 6.
    Msc: Paulo Muedi ClasseBEAN 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 publicvoid 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; } }