Objetivo da Lição:
Compreender o que é o Hibernate, suas vantagens e realizar a configuração inicial de um projeto com Hibernate.
O que é o Hibernate?
O Hibernate é um framework de mapeamento objeto-relacional (ORM) para Java. Ele facilita a interação entre a aplicação e o banco de dados, permitindo que você trabalhe com objetos Java em vez de lidar diretamente com tabelas e SQL.
Por que usar o Hibernate?
- Redução de Código Boilerplate: Simplifica a escrita de consultas SQL e manipulação de dados.
- Portabilidade: Suporte a diversos bancos de dados com alterações mínimas no código.
- Automação de Tarefas: Mapeamento automático de objetos para tabelas.
- Cache: Otimização de desempenho usando cache de primeiro e segundo nível.
Configuração Inicial
Pré-requisitos:
- JDK instalado.
- IDE (Eclipse, IntelliJ ou qualquer outra de sua preferência).
- Maven ou Gradle configurado.
- Conhecimento básico de SQL e Java.
Passos para Configuração:
1. Criar um projeto Maven
Se estiver usando uma IDE como IntelliJ ou Eclipse:
- Crie um novo projeto Maven.
- Adicione as dependências necessárias no arquivo
pom.xml
.
2. Adicionar dependências do Hibernate
No arquivo pom.xml
, adicione:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>br.com.cursojavanow</groupId> <artifactId>PrimeiroHibernate</artifactId> <version>0.0.1-SNAPSHOT</version> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>23</maven.compiler.source> <maven.compiler.target>23</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>6.3.1.Final</version> </dependency> <dependency> <groupId>jakarta.persistence</groupId> <artifactId>jakarta.persistence-api</artifactId> <version>3.1.0</version> </dependency> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>2.2.220</version> <!-- Certifique-se de usar a versão correta --> <scope>runtime</scope> </dependency> </dependencies> </project> |
3. Criar o arquivo de configuração do Hibernate
Crie um arquivo chamado hibernate.cfg.xml
na pasta src/main/resources
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <!-- Configuração do banco de dados --> <property name="hibernate.connection.driver_class">org.h2.Driver</property> <property name="hibernate.connection.url">jdbc:h2:mem:testdb</property> <property name="hibernate.connection.username">sa</property> <property name="hibernate.connection.password"></property> <property name="hibernate.dialect">org.hibernate.dialect.H2Dialect</property> <property name="hibernate.show_sql">true</property> <property name="hibernate.hbm2ddl.auto">update</property> <!-- Registro da entidade --> <mapping class="br.com.cursojavanow.PrimeiroHibernate.Pessoa" /> </session-factory> </hibernate-configuration> |
4. Criar uma classe de entidade
No Hibernate, você mapeia classes Java para tabelas no banco de dados. Aqui está um exemplo de classe simples:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
import jakarta.persistence.Entity; import jakarta.persistence.Id; @Entity public class Pessoa { @Id private Long id; private String nome; private int idade; // Getters e setters public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public int getIdade() { return idade; } public void setIdade(int idade) { this.idade = idade; } } |
5. Criar uma classe de inicialização
Você precisa de uma classe para inicializar o Hibernate e interagir com o banco de dados:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; public class HibernateUtil { public static void main(String[] args) { // Configurar o Hibernate SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(); Session session = sessionFactory.openSession(); // Criar um objeto Pessoa pessoa = new Pessoa(); pessoa.setId(1L); pessoa.setNome("João"); pessoa.setIdade(30); // Salvar no banco de dados session.beginTransaction(); session.save(pessoa); session.getTransaction().commit(); // Encerrar sessão session.close(); sessionFactory.close(); } } |
Tarefa Prática
- Configure um projeto seguindo os passos acima.
- Execute o programa e verifique no console os logs do Hibernate.
- Experimente modificar os valores da classe
Pessoa
e observe os logs gerados pelo Hibernate.
Links
Formação e Ment. Full-Stack em Spring Boot API Rest e Angular 16, 17 ou 18
Deixe um comentário