• Nenhum resultado encontrado

DATA ACCESS OBJECT DAO

N/A
N/A
Protected

Academic year: 2022

Share "DATA ACCESS OBJECT DAO"

Copied!
13
0
0

Texto

(1)

DAO

DATA ACCESS OBJECT

Prof. Leandro Carlos Fernandes

(2)

Data Access Object (DAO)

Objetivo:

Abstrair e encapsular todo o acesso a uma fonte de

dados. O DAO gerencia a conexão com a fonte de dados

para obter e armazenar os dados

(3)

Problema

(4)

Descrição do Problema

Forma de acesso aos dados varia consideravelmente dependendo da fonte de dados usado

Banco de dados relacional

Arquivos (XML, CSV, texto, formatos proprietários)

LDAP

Persistência de objetos depende de integração com fonte de dados (ex: business objects)

Colocar código de persistência (ex: JDBC) diretamente no código do objeto que o utiliza ou do cliente amarra o código

desnecessariamente à forma de implementação

Ex: difícil passar a persistir objetos em XML, LDAP, etc.

(5)

Solução: Data Access Object

(6)

Descrição da solução

Data Access Object (DAO) oferece uma interface comum de acesso a dados e esconde as características de uma implementação específica

Uma API: métodos genéricos para ler e gravar informação

Métodos genéricos para concentrar operações mais comuns (simplificar a interface de acesso)

DAO define uma interface que pode ser implementada para cada nova fonte de dados usada, viabilizando a substituição de uma implementação por outra

DAOs não mantêm estado nem cache de dados

(7)

Estrutura UML do modelo DAO

Client: objeto que requer acesso a dados (Business Object, Session Façade, Application Service, Value List Handler, ...)

DataAccessObject: esconde detalhes da fonte de dados

DataSource: implementação da fonte de dados

Data: objeto de transferência usado para retornar dados ao cliente. Poderia também ser usado para receber dados.

ResultSet: resultados de uma pesquisa no banco

(8)

Diagrama de

Sequência

(9)

Estratégias de Implementação

Custom DAO Strategy

Estratégia básica. Oferece métodos para criar, apagar, atualizar e pesquisar dados em um banco.

Pode usar Transfer Object para trocar dados com clientes

DAO Factory Method Strategy

Utiliza Factory Methods em uma classe para recuperar todos os DAOs da aplicação

DAO Abstract Factory Strategy

Permite criar diversas implementações de fábricas diferentes que

criam DAOs para diferentes fontes de dados

(10)

Consequências

Transparência quanto à fonte de dados

Facilita migração para outras implementações

Basta implementar um DAO com mesma interface

Reduz complexidade do código nos objetos de negócio

Centraliza todo acesso aos dados em camada separada

Qualquer componente pode usar os dados (servlets, EJBs)

Camada adicional

Pode ter pequeno impacto na performance

Requer design de hierarquia de classes (Factory)

(11)

EXEMPLO

Hand’s on!

(12)

Cliente - codigo: int

- nome: String - endereco: String + setCodigo(int) : void + getCodigo( ) : int

+ setNome(String) : void + getNome( ) : String

+ setEndereco(String) : void + getEndereco ( ) : String

Produto - codigo: int

- descricao: String + setCodigo(int) : void + getCodigo( ) : int

+ setDescricao(String) : void + getDescricao( ) : String

Venda - nf: int

- cliente: Cliente

- itens: List<ItemDaVenda>

+ setNF(int) : void + getNF( ) : int

+ setCliente(Cliente) : void + getCliente( ) : Cliente

+ addItem(ItemDaVenda) : void + getItens( ): List<ItemDaVenda>

ItemDaVenda - produto: Produto - quantidade: int - preco: float

+ setProduto(Produto) : void + getProduto( ) : Produto + setQuantidade(int) : void + getQuantidade( ) : int + setPreco(float) : void + getPreco( ) : float

(13)

Comercial

Banco de Dados:

Clientes(cod, nome, endereço)

Produtos(cod, descrição)

Vendas(nf, codCliente)

ItensDasVendas(numeroNF, codProduto, qtde, preco)

Referências

Documentos relacionados

Para esse fim, analisou, além do EVTEA, os Termos de Referência (TR) do EVTEA e do EIA da Ferrogrão, o manual para elaboração de EVTEA da empresa pública Valec –

Espátula para núcleo de lente e medida da câmara anterior Knolle - Lâmina da espátula achata e curva de 1 mm e 30 mm de comprimento com marcação em 5, 6 e 7 mm à partir da

Sendo assim, esse trabalho tem como intuito, apresentar uma experiência vivenciada em um projeto de Educação de Jovens e Adultos, denominado “Ler e Escrever”, localizado

In: VI SEMINÁRIO NACIONAL DE PESQUISADORES DA HISTÓRIA DAS COMUNIDADES TEUTO-BRASILEIRAS (6: 2002: Santa Cruz do Sul).. BARROSO, Véra Lúcia

Moderadores: Hélder Santos (ESTeSC) e Helena Santiago (CHULN - HSM) Moderadores: Catarina Lopes (CHUC) e Adelaide Almeida (HLL). Sono Novas guidelines ATS/ERS

Buscando analisar o grau de variância entre os dentistas, em relação à escolha de dentes artificiais mais apropriados para seus pacientes, Sellen, Jagger e Harrison (2002)

Considera-se que a interdisciplinaridade contribui para uma visão mais ampla do fenômeno a ser pesquisado. Esse diálogo entre diferentes áreas do conhecimento sobre

O pescado é um importante constituinte da dieta humana, entretanto, a presença de parasitos pode constituir um risco à saúde pública, além de impor prejuízos econômico