Persistência de Dados JDBC e JPA
Por: giovane.souza • 25/10/2019 • Artigo • 10.380 Palavras (42 Páginas) • 131 Visualizações
Persistência JDBC e JPA
Giovane Belizário de Souza
Índice
- Introdução ................................................................................................1
- Aplicação exemplo ...................................................................................2
- JDBC .........................................................................................................3
- Introdução ..........................................................................................3
- Transação ...........................................................................................3
- Cache .................................................................................................7
- Concorrência ....................................................................................10
- JPA ..........................................................................................................13
- Introdução ........................................................................................13
- Transação .........................................................................................16
- Cache ...............................................................................................19
- Concorrência ....................................................................................21
- Conclusão ...............................................................................................22
- Bibliografia .............................................................................................23
Introdução
Neste artigo será apresentado de maneira breve e direta a utilização das tecnologias JDBC e JPA para persistência de dados na plataforma Java, o tópicos debatidos são Transação, Cache e Concorrência.
Transação
Uma operação ou um conjunto de operações que devem ser executadas como uma unidade, ou todas operações são executadas ou nenhuma delas.
Cache
Uma área de armazenamento onde os dados(Objetos, referências e queries) frequentemente utilizados são guardados para um acesso mais rápido diminuindo a necessidade de acessar o banco de dados.
Concorrência
A execução de duas ou mais transações referentes a mesma informação.
Aplicação exemplo
Aplicação de pedidos de um restaurante onde o atendente associa um pedido a uma mesa, insere itens no pedido conforme solicitado pelo cliente e inicia um pedido, onde ele pode alterar conforme o cliente solicita e ao final é fechado o pedido onde é inserida a data de fechamento do pedido e o pedido e seus itens são gravados atualizados.
Segue abaixo as classes utilizadas:
public class Produto {
private int codigo;
private String descricao;
private float valor;
//getters e setters
}
public class Item {
private int codigoPedido;
private int codigo;
private Produto produto;
private int quantidade;
private float valorTotal;
//getters e setters
}
public class Pedido {
private int codigo;
private int versao;
private String atendente;
private int numeroMesa;
private List
private Date dataFechamento;
//getters e setters
}
JDBC
Introdução
O JDBC é uma API padrão e nativa do Java para acesso a bancos de dados independentes desde a versão 1.1 lançada em 1995. Com o JDBC é possível executar as três mais necessárias tarefas quando se trata de acesso a banco de dados: Estabelecer uma conexão com banco de dados, enviar instruções SQL e processar respostas, necessitando apenas de um driver de conexão com o banco de dados utilizado.
Transação
Quando uma conexão com via JDBC é criada, por padrão esta configurada como autoCommit , isso quer dizer que cada instrução SQL será tratada como uma transação e será automaticamente commitada depois de executada na aplicação.
Pense no nosso exemplo de aplicação, quando o atendente inicia um pedido, tanto o pedido quanto seus itens devem ser inseridos para que haja consistência de informações no banco de dados. Caso cada instrução SQL seja tratada como uma transação e haja algum problema de conexão com o banco de dados durante a execução do método iniciarPedido(), no qual executa primeiro a inserção do objeto Pedido e depois da lista de objetos Item, podemos ter em nosso banco de dados um pedido inserido, porém com itens faltando ou mesmo sem itens associados.
...