O documento resume os principais tópicos sobre persistência de dados em Java, incluindo JDBC, Maven, CRUD, padrão DAO e JPA/Hibernate. É apresentado um curso sobre o tema com exemplos de projetos.
1. Curso de Java
PARTE 05
Persistência de Dados
Introdução à:
JDBC
Maven
CRUD
Padrão DAO
JPA/Hibernate
por: Mário Sergio
mariosergio30@gmail.com
linkedin.com/in/mario-sergio-a1125831
4. JDBC
4
É essencial que qualquer linguagem de programação faça acesso aos diversos
bancos de dados disponíveis no mercado, principalmente no desenvolvimento de
sistema corporativos.
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.DriverManager;
Driver´s
específicos
Saber mais: https://www.devmedia.com.br/aprendendo-java-com-jdbc/29116
5. Projetos de Exemplo
JDBC BÁSICO:
https://github.com/mariosergio30/aprendendoPersistencia_1JDBC.git
JDBC COM DAO:
https://github.com/mariosergio30/https://github.com/mariosergio30/aprendendoPersistencia_2DAO
JPA:
https://github.com/mariosergio30/aprendendoPersistencia_3JPA.git
7. 7
Exemplo de uso:
Instrução INSERT
Instrução SELECT (ResultSet)
A classe ResultSet respresenta uma
Matriz contendo as colunas e linhas
resultantes da consulta select
JDBC
12. Projeto de exemplo: Executando
12OBS: Executar método main da classe Application
13. Maven
Um dos principais problemas no desenvolvimento
de sistemas é como fazer com que toda a
equipe construa o artefato final da mesma
maneira com as bibliotecas e configurações
corretas.
13
O Maven é uma ferramenta de integração de projetos.
Com ele fica mais fácil:
- Gerenciar dependências (bibliotecas externas)
- Controlar versão de artefatos
- Integrar múltiplos módulos de uma aplicação.
Saber mais: http://www.dclick.com.br/2010/09/15/o-que-e-o-maven-e-seus-primeiros-passos-com-a-ferramenta/
16. Maven
16
Verificando configuração no Eclipse:
As versões atuais do eclipse já possuem uma instalação do maven embutida, mas se desejar você poderia
utilizar outra versão do maven previamente existente em outro local em seu computador.
17. Maven: Baixar e instalar
17
Baixar e instalar: https://maven.apache.org/ OBS: somente necessário se
você não desejar utilizar instalação
do maven embutida no eclipse
19. Eclipse: Criando um novo projeto Maven
19
Projeto criado pelo maven:
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
</dependencies>
Assim, você poderia importar as dependências
para usar o driver JDBC do MySQL
24. CRUD EM JAVA
Mas, Como fazer o controle CRUD em JAVA ?
A grande maioria das aplicações de nível corporativo usam algum tipo de
persistência de dados. Entre eles o mais usado é o Banco de Dados. A
linguagem SQL é amplamente utilizada para comunicar com os
sistemas gerenciadores de banco de dados (SGBD). Java suporta esta
necessidade desde cedo através da API JDBC (Java Database
Connectivity).
Utilizar o padrão de Projeto DAO
Esta ideia, inocente à primeira vista, é capaz de isolar todo o acesso a banco de
dados em classes bem simples, cuja instância é um objeto responsável
por acessar os dados. Da responsabilidade deste objeto surgiu o nome de Data
Access Object ou simplesmente DAO, um dos mais famosos padrões de projeto
(design pattern).
25. O Padrão DAO
DAO (Data Access Object) se refere a classe que irá fazer a comunicação de seu
programa com o banco de dados. Esse padrão promove a reutilização de código,
também promove a boa manutenção do código pois ele isola o código de acesso ao
banco de dados das regras de negócio.
Primeiro passo: Criação da tabela no banco de dados.
Abra seu cliente sql favorito para o seu banco de dados e crie a tabela de
produtos. Supondo que você esteja usando o mysql:
Segundo Passo: Criação da classe Modelo Entidade que represente essa
tabela. Você precisa de uma Classe-Entidade para seu sistema, a fim de
desfrutar dos benefícios da orientação a objetos.
Terceiro Passo: Criação da classe modelo DAO para cada classe do
Modelo. DAO (Data Access Object) se refere a classe que irá fazer a
comunicação de seu sistema com o banco de dados. Essa classe precisa
dispor de métodos para fazer o CRUD, geralmente definidos por uma
INTERFACE EM JAVA.
public class Produto {
private int id;
private String nome;
private String descricao;
......
CREATE TABLE `produto` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`nome` text NOT NULL,
`descricao` text NOT NULL,
PRIMARY KEY (`id`)
public interface DAO<T> {
T create () ;
void insert ( <T> obj ) ;
void update ( <T> obj ) ;
void delete ( <T> obj ) ;
List<T> select() ;
}
26. O Padrão DAO
INTERFACE EM JAVA:
Uma INTERFACE em JAVA é um CONTRATO
que o projetista de classes assina, garantindo
que sua classe ofereça todos os métodos da
interface.
Uma interface é como se fosse uma classe
abstrata somente com métodos abstratos
(sem corpo).
Aqui temos uma classe que
implementa a interface
InterfaceCrudDAO, obrigando-se
a implementar todos os métodos
previstos pela interface.
Obs: código completo, no pacote modeloDAO de
exemplo de aula
27. O Padrão DAO
PROJETO EXEMPLO:
Exemplo completo: projeto Eclipse aprendendoPersistencia02_DAO.zip (Classe Application)
28. JPA - JAVA PERSISTENCE API
Saber mais: https://www.caelum.com.br/apostila-java-web/uma-introducao-pratica-ao-jpa-com-hibernate/
MAPEAMENTO OBJETO RELACIONAL
Com a popularização do Java em ambientes corporativos, logo se percebeu que
grande parte do tempo do desenvolvedor era gasto na codificação de queries SQL e no
respectivo código JDBC responsável por trabalhar com elas.
Além de um problema de produtividade, algumas outras preocupações aparecem: SQL
que, apesar de ter um padrão ANSI, apresenta diferenças significativas dependendo do
fabricante. Não é simples trocar um banco de dados pelo outro.
A ideia é que o programador não precise escrever código SQL em no código
java. O Hibernate abstrai o seu código SQL, toda a camada JDBC e o SQL será
gerado em tempo de execução.
Hibernate é uma ferramenta open source e é a líder de mercado, sendo a
inspiração para a especificação Java Persistence API (JPA)
29. JPA - JAVA PERSISTENCE API
Saber Mais: https://examples.javacodegeeks.com/enterprise-java/jpa-named-query-example/
J2EE Especification
Hibernate é uma das
implementações dessa API
http://hibernate.org/
32. JPA - JAVA PERSISTENCE API
Exemplo completo: projeto Eclipse aprendendoPersistencia03_JPA.zip (Classe Application) 32
33. JPA - JAVA PERSISTENCE API
Exemplo completo: projeto Eclipse aprendendoPersistencia.zip (Classe AprendendoJDBC_JPA)
Classe Modelo: Disciplina.java (Representa a ENTIDADE do Hibernate)
Queries Nomeadas: queries.xml
Classe DAO: DisciplinaDAO.java
33