persistência bd / drivers 3.pdf · persistência •persistir é o processo de armazenamento de...
TRANSCRIPT
Persistência – BD / drivers
Professor: Saulo Henrique Cabral Silva
Instituto Federal de Minas Gerais Campus Ponte Nova
Persistência
• Persistir é o processo de armazenamento de dados.
• A biblioteca de persistência em banco de dados relacionais do Java é chamada de JDBC.
• Existem também diversas ferramentas do
tipo ORM (Mapeamento Relacional de Objetos).
– Hibernate
– JPA do módulo Enterprise
2
Como acessar o banco de dados...
• Há várias formas de se conectar à um Sistema Gerenciador de Banco de Dados (SGBD) utilizando Java.
– Sockets (protocolo proprietário)
– Api específica (mudar banco)
– JDBC (forma mais elegante)
• Java database connectivity
3
Como acessar o banco de dados...
• Para evitar que cada banco tenha sua própria API e conjunto de classes e métodos.
• Java disponibiliza um conjunto de interfaces para manipulação no pacote java.sql. – O qual carinhosamente
denominamos JDBC.
4
Conexão - Connection
• Entre as diversas Interfaces do JDBC, existe a interface Connection que define métodos para a execução da nossa conhecida SQL. – Consultar
– Atualizar
– Exclusões
– Inserções
• E o protocolo proprietário? – Proprietários se adéquam
ao JDBC (padrão)
5
Resolvendo o protocolo proprietário de cada Banco de Dados • Ao conjunto de classes que realizam a ponte entre uma aplicação e
o protocolo proprietário, chamamos de driver.
• Todos os principais bancos de dados do mercado possuem drivers JDBC.
• O driver que usamos aqui é análogo ao que usamos de dispositivos de entrada e saída no dia a dia. (papel de “tradutor”)
6
BD
JDBC DRIVER
Abrindo uma conexão com o Banco
• Sempre precisamos de um driver.
• O responsável por efetuar a comunicação com todos os drivers disponíveis no projeto é a classe DriverManager. – Para estabelecermos uma nova conexão com o banco de dados
utilizamos o método estático: getConnection
7
https://jdbc.postgresql.org/download.html
Pegue o seu driver aqui!!!
Abrindo uma conexão com o BD
Connection conexao = DriverManager.getConnection(
“jdbc:postgresql://ip:porta/nome”,
“usuario” ,
“senha” );
8
Boa prática de programação
• Em determinado momento da
aplicação, pode ser necessário ter:
– controle total da construção de objetos de uma
classe.
– saber quantos objetos já foram construídos.
• Controlar um processo repetitivo e trabalhoso.
9
Padrão Fábrica public class FabricaConexao { public static Connection getConnection() { try { return DriverManager.getConnection( “jdbc:postgresql://IP:port/nome”, “usuario”, “senha”); } catch(...) { // Erros de conexão com banco de dados aqui... } } } Connection con = FabricaConexao.getConnection();
10
Padrão Fábrica
• Basta invocar o método da getConnection da classe Fábrica para obter uma nova conexão com o banco de dados.
• Podemos mais tarde mudar a obtenção de conexões que o uso de banco na aplicação será ajustado para a nova configuração. – Trocar de banco de dados.
11
Design Patterns
• O livro mais conhecido de
Design Patterns foi escrito em 2000 e tem trechos de código em C++ e Smalltalk. Mas o que realmente importa são os conceitos e os diagramas que fazem desse livro independente de qualquer linguagem.
• Design Patterns, Erich Gamma et al.
12
ANTES DE COMEÇAR A UTILIZAR NOSSO BANCO, VEJAMOS O PADRÃO MVC
13
Ação Usuário Atualização
Atualiza Notifica
14
Prepare-se para explodir suas classes
MVC
• M (model) – Armazena e representa as informações pertinentes ao domínio do problema. Podem ter relações com outros Objetos Modelos.
• V (view) – Gera uma representação dos dados que estão presentes no modelo. Ocorre uma simplificação das informações para o usuário. (GUI / DTO) – Data transfer Objetc – Graphical User Interface
• C (controler) – Possui a lógica da aplicação, pode enviar atualizações as classes View ou solicitar atualizações nas classes Model’s.
15
Model (Bean)
• Models são classes que possuem: – Construtores – Métodos de acesso do tipo get e set, necessários
• Normalmente representam nosso modelo de dados.
• MAIS NADA!
• Diferente de JPA (API Java para Persistência)
16
Voltando a Seu José...
• Construindo os modelos na Loja de Seu José...
• Aplicando o padrão MVC em nosso projeto...
17
Sua vez...
• Construa as classes Modelos do seu projeto
• Construa seu Banco de dados – Conceba seu ER se for preciso...
• Crie suas tabelas...
• Lembre do padrão MVC
18