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