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