Professional Documents
Culture Documents
Camada de Persistência
Camada de Persistência
TÉCNICAS DE
PROGRAMAÇÃO
Unidade 04
A Camada de Persistência
Técnicas de Programação Faculdade de Informática/PUCRS 2
CAMADA DE
PERSISTÊNCIA
Técnicas de Programação Faculdade de Informática/PUCRS 3
Nesta unidade:
• Visão Geral
• Padrões de Projeto
• DAO e DTO
• Proxy
• Implementação da Persistência em Bancos de
Dados Relacionais
• JDBC
• Transação
• Conceitos Básicos
• Mecanismos de Implementação
• Estratégias de Acesso a Dados
• Bloqueio de Dados (lock)
• Bloqueio Otimista
• Bloqueio Pessimista
Técnicas de Programação Faculdade de Informática/PUCRS 4
Visão Geral
• A camada de persistência é responsável por manter os dados
da aplicação em algum meio de armazenamento não-volátil.
• -> tornar essa funcionalidade transparente para a camada
superior:
• Criar objetos de propósito geral e subsistemas que fornecem serviços
para a aplicação.
• Fornecer métodos para incluir, alterar e excluir objetos da aplicação.
• Fornecer métodos que retornam coleções de objetos,
independentemente da forma como estão persistidos.
• Geralmente são independentes da aplicação e reusáveis entre
diversos sistemas.
• Podem lidar com transações
• Ex.: uma fonte de dados a partir de um SGBD relacional.
• A camada de persistência pode suportar SGBDs de diversos
fabricantes.
Técnicas de Programação Faculdade de Informática/PUCRS 5
• Arquivos binários
• Padrões da indústria
• formatos proprietários
• Bancos de Dados
• Geralmente SGBDs relacionais (linguagem SQL)
Técnicas de Programação Faculdade de Informática/PUCRS 6
IMPLEMENTAÇÃO DE
PERSISTÊNCIA EM BANCOS
DE DADOS RELACIONAIS
Técnicas de Programação Faculdade de Informática/PUCRS 9
Implementação de Persistência em
Bancos de Dados Relacionais
• Java fornece acesso a bancos de dados através do
JDBC (Java Database Connectivity)
• É uma API Java para suporte à execução de comandos SQL -
Structured Query Language.
• Permite o envio de comandos para qualquer tipo de Banco de
Dados Relacional.
Aplicação Java
JDBC
JDBC
• Estabelece conexões com o BD
• Envia requisições SQL
• Processa os resultados
driver
SQL
JDBC SGBD
Protocolo proprietário
do Sistema Gerenciador
do Banco de Dados
Técnicas de Programação Faculdade de Informática/PUCRS 11
JDBC
Técnicas de Programação Faculdade de Informática/PUCRS 12
Adendo: ODBC
• O que é ODBC?
• Open Database Conectivity
API JDBC
• JDBC é a interface padrão para acesso a bancos de
dados relacionais em Java.
Executar
comandos SQL
Processar
resultados
Fechar conexão
Técnicas de Programação Faculdade de Informática/PUCRS 15
Classes envolvidas:
• DriverManager
• Provê acesso aos drivers JDBC.
• Connection
• Representa uma conexão com o BD.
• Statement
• Fornece suporte para a execução dos comandos SQL.
• ResultSet
• Representa o objeto resultante de uma consulta ao BD, composto de
um cursor que aponta para as linhas da tabela resultante.
Técnicas de Programação Faculdade de Informática/PUCRS 17
Driver
Connection Statement ResultSet
Manager cria cria obtém
SQL dados
Driver
Estabelece link
com o BD
BD
Técnicas de Programação Faculdade de Informática/PUCRS 18
Executar
Conectar ao BD
comandos SQL
Processar
resultados
Fechar conexão
Técnicas de Programação Faculdade de Informática/PUCRS 20
• Registrar driver:
• Através do DriverManager
• Exs:
• Connection com = DriverManager.getConnection(
"jdbc:odbc:bd1",“user","s1234s");
• Estágio 2: consultar
Abrir conexão
Executar
Criar um comando
comandos SQL
Fechar conexão
Técnicas de Programação Faculdade de Informática/PUCRS 24
• Criar um comando:
• Ex.:
• ResultSet resultado = comando.executeQuery(
"SELECT * FROM autores");
Abrir conexão
Executar
comandos SQL Obter um result set
Processar
resultados Percorrer resultado
Atribuir os resultados
Fechar conexão a variáveis
Técnicas de Programação Faculdade de Informática/PUCRS 28
• Ex.:
• while (rs.next()){
int x = rs.getInt("a");
String s = rs.getString("b");
float f = rs.getFloat("c");
}
int x = rs.getInt(“a”);
if (rs.wasNull()){...}
Técnicas de Programação Faculdade de Informática/PUCRS 31
Abrir conexão
Processar
resultados Fechar o statement
• Fechar a conexão:
• Ex.:
• resultado.close();
• comando.close();
• conexao.close();
Técnicas de Programação Faculdade de Informática/PUCRS 33
• Exceções do JDBC: