persistência bd / drivers 3.pdf · persistência •persistir é o processo de armazenamento de...

19
Persistência BD / drivers Professor: Saulo Henrique Cabral Silva Instituto Federal de Minas Gerais Campus Ponte Nova

Upload: others

Post on 17-Oct-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Persistência BD / drivers 3.pdf · Persistência •Persistir é o processo de armazenamento de dados. •A biblioteca de persistência em banco de dados relacionais do Java é chamada

Persistência – BD / drivers

Professor: Saulo Henrique Cabral Silva

Instituto Federal de Minas Gerais Campus Ponte Nova

Page 2: Persistência BD / drivers 3.pdf · Persistência •Persistir é o processo de armazenamento de dados. •A biblioteca de persistência em banco de dados relacionais do Java é chamada

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

Page 3: Persistência BD / drivers 3.pdf · Persistência •Persistir é o processo de armazenamento de dados. •A biblioteca de persistência em banco de dados relacionais do Java é chamada

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

Page 4: Persistência BD / drivers 3.pdf · Persistência •Persistir é o processo de armazenamento de dados. •A biblioteca de persistência em banco de dados relacionais do Java é chamada

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

Page 5: Persistência BD / drivers 3.pdf · Persistência •Persistir é o processo de armazenamento de dados. •A biblioteca de persistência em banco de dados relacionais do Java é chamada

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

Page 6: Persistência BD / drivers 3.pdf · Persistência •Persistir é o processo de armazenamento de dados. •A biblioteca de persistência em banco de dados relacionais do Java é chamada

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

Page 7: Persistência BD / drivers 3.pdf · Persistência •Persistir é o processo de armazenamento de dados. •A biblioteca de persistência em banco de dados relacionais do Java é chamada

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!!!

Page 8: Persistência BD / drivers 3.pdf · Persistência •Persistir é o processo de armazenamento de dados. •A biblioteca de persistência em banco de dados relacionais do Java é chamada

Abrindo uma conexão com o BD

Connection conexao = DriverManager.getConnection(

“jdbc:postgresql://ip:porta/nome”,

“usuario” ,

“senha” );

8

Page 9: Persistência BD / drivers 3.pdf · Persistência •Persistir é o processo de armazenamento de dados. •A biblioteca de persistência em banco de dados relacionais do Java é chamada

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

Page 10: Persistência BD / drivers 3.pdf · Persistência •Persistir é o processo de armazenamento de dados. •A biblioteca de persistência em banco de dados relacionais do Java é chamada

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

Page 11: Persistência BD / drivers 3.pdf · Persistência •Persistir é o processo de armazenamento de dados. •A biblioteca de persistência em banco de dados relacionais do Java é chamada

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

Page 12: Persistência BD / drivers 3.pdf · Persistência •Persistir é o processo de armazenamento de dados. •A biblioteca de persistência em banco de dados relacionais do Java é chamada

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

Page 13: Persistência BD / drivers 3.pdf · Persistência •Persistir é o processo de armazenamento de dados. •A biblioteca de persistência em banco de dados relacionais do Java é chamada

ANTES DE COMEÇAR A UTILIZAR NOSSO BANCO, VEJAMOS O PADRÃO MVC

13

Page 14: Persistência BD / drivers 3.pdf · Persistência •Persistir é o processo de armazenamento de dados. •A biblioteca de persistência em banco de dados relacionais do Java é chamada

Ação Usuário Atualização

Atualiza Notifica

14

Prepare-se para explodir suas classes

Page 15: Persistência BD / drivers 3.pdf · Persistência •Persistir é o processo de armazenamento de dados. •A biblioteca de persistência em banco de dados relacionais do Java é chamada

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

Page 16: Persistência BD / drivers 3.pdf · Persistência •Persistir é o processo de armazenamento de dados. •A biblioteca de persistência em banco de dados relacionais do Java é chamada

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

Page 17: Persistência BD / drivers 3.pdf · Persistência •Persistir é o processo de armazenamento de dados. •A biblioteca de persistência em banco de dados relacionais do Java é chamada

Voltando a Seu José...

• Construindo os modelos na Loja de Seu José...

• Aplicando o padrão MVC em nosso projeto...

17

Page 18: Persistência BD / drivers 3.pdf · Persistência •Persistir é o processo de armazenamento de dados. •A biblioteca de persistência em banco de dados relacionais do Java é chamada

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

Page 19: Persistência BD / drivers 3.pdf · Persistência •Persistir é o processo de armazenamento de dados. •A biblioteca de persistência em banco de dados relacionais do Java é chamada