Menu Docs
Página inicial do Docs
/ /

Get Started with the MongoDB Extension for Hibernate ORM

Hibernate ORM enables you to use Java objects to perform database operations, and you can use the MongoDB Extension for Hibernate ORM to simplify your application's interactions with MongoDB data. This guide shows how to install the Hibernate ORM extension, set up a MongoDB deployment, and create a Java application that defines classes mapped to MongoDB collections.

Dica

O MongoDB Atlas é um serviço de banco de dados em nuvem totalmente gerenciado que hospeda seu Implantações do MongoDB. Você pode criar sua própria implantação do MongoDB Atlas gratuita (nenhum cartão de crédito exigido) seguindo as etapas deste guia.

1

Antes de começar a desenvolver, verifique se você tem as seguintes dependências instaladas em sua máquina local:

  • Java version 17 or later

  • Ambiente de desenvolvimento integrado (IDE), como IntelliJ IDEA ou Eclipse

Observação

Este tutorial mostra como criar um aplicação usando Maven ou Gradle em um IDE. Se você não usar um IDE, consulte Construindo o Maven ou Criando Novas Construções Gradle para saber como definir seu projeto.

2

No seu IDE, crie um novo projeto Maven ou Gradle denominado MongoHibernateQuickstart. Para projetos Maven, adicione a seguinte dependência ao seu arquivo pom.xml:

<dependencies>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-hibernate</artifactId>
<version>1.0.0-alpha0</version>
</dependency>
</dependencies>

Para projetos Gradle, adicione a seguinte dependência ao seu arquivo build.gradle:

dependencies {
implementation("org.mongodb:mongodb-hibernate:1.0.0-alpha0")
}

Em seu IDE, certifique-se de recarregar ou sincronizar seu projeto para concluir a instalação da extensão Hibernar ORM.

Depois de concluir essas etapas, você terá a extensão Hibername ORM instalada e um novo projeto Maven ou Gradle configurado em seu IDE.

Você pode criar uma implantação MongoDB de camada gratuita no MongoDB Atlas para armazenar e gerenciar seus dados. O MongoDB Atlas hospeda e gerencia seu banco de dados MongoDB na nuvem.

1

Complete o guia Iniciar MongoDB para configurar uma nova conta Atlas e carregar dados de amostra em uma nova implantação MongoDB de camada grátis . Siga as instruções nas Cloud Deployment abas para criar sua implementação do MongoDB Atlas na nuvem.

2

Depois de criar seu usuário de banco de dados, salve o nome de banco de dados e a senha do banco de dados desse usuário em um local seguro para uso em uma etapa futura.

Após concluir estas etapas, você terá uma nova implantação de camada grátis do MongoDB no Atlas, credenciais de trigger de banco de dados e dados de exemplo carregados no seu reconhecimento de data center.

Você pode se conectar à sua implantação do MongoDB fornecendo um URI de conexão, também chamado de connection string, que instrui o driver sobre como se conectar a uma implantação do MongoDB e como se comportar enquanto estiver conectado.

A cadeia de conexão inclui o nome do host ou endereço IP e porta de sua implantação, o mecanismo de autenticação, as credenciais do usuário quando aplicável, e opções de conexão.

1

Para recuperar a string de conexão da implantação criada na etapa anterior, faça login na sua conta do Atlas e navegue até a seção Clusters. Clique no botão Connect para sua nova implantação, como mostrado na seguinte captura de tela:

O botão de conexão na seção de clusters da UI do Atlas

Em seguida, vá para a seção Connect your application. Selecione "Java" no menu de seleção Driver e a versão que melhor corresponde à versão instalada no menu de seleção Version.

2

Clique no botão à direita da string de conexão para copiá-la para a área de transferência, como mostrado na seguinte captura de tela:

O botão de cópia da connection string na interface de usuário do Atlas
3

Salve sua string de conexão em um local seguro para uso posterior. Substitua os espaços reservados da string de conexão <db_username> e <db_password> pelo nome de usuário e senha do usuário do banco de dados .

4

Para se conectar ao banco de dados de amostra sample_mflix, que seu aplicação usará nas próximas etapas, adicione o nome do banco de dados à sua string de conexão.

Sua string de conexão deve ser semelhante ao exemplo a seguir:

mongodb+srv://<db_username>:<db_password>@<cluster>/sample_mflix?<options>
5

Antes de adicionar sua string de conexão a um arquivo de configuração XML em uma etapa futura, você deve codificar os seguintes caracteres especiais em sua string de conexão:

  • &: Substitua por &amp;

  • ': Substitua por &apos;

  • ": Substitua por &quot;

  • <: Substitua por &lt;

  • >: Substitua por &gt;

Por padrão, sua string de conexão do Atlas inclui opções de conexão separadas pelo caractere &. Certifique-se de codificar em XML esse caractere.

Após completar estas etapas, você tem uma string de conexão que contém seu nome de usuário, senha e banco de dados.

Depois de instalar a extensão ORM do Hibername e criar um cluster MongoDB Atlas , você pode criar um aplicação Java que se conecta ao MongoDB.

1

Navegue até o diretório MongoHibernateQuickstart do seu projeto src/main/resources e crie um novo arquivo denominado hibernate.cfg.xml, que armazena as definições de configuração do seu aplicativo.

Copie o seguinte código para este arquivo:

<?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>
<property name="hibernate.dialect">com.mongodb.hibernate.dialect.MongoDialect</property>
<property name="hibernate.connection.provider_class">
com.mongodb.hibernate.jdbc.MongoConnectionProvider
</property>
<property name="jakarta.persistence.jdbc.url">
connection-string
</property>
<property name="hibernate.show_sql">true</property>
<mapping class="org.example.Movie"/>
</session-factory>
</hibernate-configuration>

Na jakarta.persistence.jdbc.url propriedade , substitua connection-string o espaço reservado pela string de conexão que você criou na etapa anterior.

2

Observação

Diretório de pacotes padrão

Este tutorial usa o pacote org.example padrão do Maven e do Gradle e adiciona arquivos de aplicação ao diretório src/main/java/org.example. Se você usar um nome de pacote diferente, certifique-se de criar seus arquivos no diretório correspondente.

No diretório src/main/java/org.example do seu projeto, crie um novo arquivo chamado HibernateUtil.java. Esta classe de utilitário cria um SessionFactory com base em seu arquivo de configuração do hibernate.cfg.xml.

Copie o seguinte código para este arquivo:

package org.example;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public final class HibernateUtil {
private static final SessionFactory SESSION_FACTORY =
new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();
private HibernateUtil() {}
public static SessionFactory getSessionFactory() { return SESSION_FACTORY; }
}
3

No diretório do seu projeto, crie um novo arquivo org.example Movie.java chamado. Esse arquivo contém sua Movie entidade, que representa a sample_mflix.movies coleção de amostras dos conjuntos de dados de amostra do Atlas .

Copie o seguinte código para este arquivo:

package org.example;
import com.mongodb.hibernate.annotations.ObjectIdGenerator;
import org.bson.types.ObjectId;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
@Entity
@Table(name = "movies")
public class Movie {
@Id
@ObjectIdGenerator
private ObjectId id;
private String title;
private String plot;
private int year;
private String[] cast;
public Movie(String title, String plot, int year, String[] cast) {
this.title = title;
this.plot = plot;
this.year = year;
this.cast = cast;
}
public Movie() {
}
public ObjectId getId() {
return id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getPlot() {
return plot;
}
public void setPlot(String plot) {
this.plot = plot;
}
public int getYear() {
return year;
}
public void setYear(int year) {
this.year = year;
}
public String[] getCast() {
return cast;
}
public void setCast(String[] cast) {
this.cast = cast;
}
}

Este arquivo define uma entidade Movie com os seguintes campos:

  • id: o identificador exclusivo do filme, mapeado para o campo MongoDB _id .

  • title: O título do filme.

  • year: o ano em que o filme foi lançado.

  • cast: uma array de strings representando os membros do elenco do filme.

4

No diretório org.example do seu projeto, crie um novo arquivo chamado Main.java. Esse arquivo contém sua classe de aplicação principal, que armazena a lógica do seu aplicativo.

Copie o seguinte código para este arquivo:

package org.example;
import org.hibernate.Transaction;
import org.hibernate.Session;
public class Main {
public static void main(String[] args) {
var sf = HibernateUtil.getSessionFactory();
Session session = sf.openSession();
Transaction tx = session.beginTransaction();
// Add CRUD operations here
tx.commit();
session.close();
sf.close();
}
}

Depois de concluir essas etapas, você terá um aplicação Java configurado para usar a extensão ORM do Hibername e se conectar ao MongoDB deployment. Seu aplicação tem a seguinte estrutura de arquivo:

MongoHibernateQuickstart
├── src
│ └── main
│ ├── java
│ │ └── org.example
│ │ ├── HibernateUtil.java
│ │ ├── Main.java
│ │ └── Movie.java
│ └── resources
│ └── hibernate.cfg.xml
├── .gitignore
├── pom.xml (for Maven projects)
└── build.gradle (for Gradle projects)

Você pode executar queries em seus objetos Movie, que a extensão traduz em queries do MongoDB .

1

Navegue até seu arquivo Main.java e cole o seguinte código abaixo do comentário // Add CRUD operations here:

var searchTitle = "Little Women";
var results = session.createQuery("from Movie m where m.title = :t", Movie.class)
.setParameter("t", searchTitle)
.getResultList();
for (var m : results) {
System.out.println("Title: " + m.getTitle() + ", Year: " + m.getYear());
}

Este código usa a Linguagem de Consulta do Hibernado ORM (HQL) para recuperar sample_mflix.movies documentos que têm um valor title de "Little Women". Em seguida, imprime os valores title e year de cada resultado.

Dica

Para saber mais sobre HQL, consulte Linguagem de query do Hibernar no guia de usuário do Hibernado ORM.

2

Execute o arquivo Main.java em seu IDE. Sua saída contém detalhes sobre o comando de banco de dados e os documentos recuperados:

Hibernate: {"aggregate": "movies", "pipeline": [{"$match": {"title": {"$eq": {"$undefined": true}}}},
{"$project": {"_id": true, "cast": true, "plot": true, "title": true, "year": true}}]}
Title: Little Women, Year: 1949
Title: Little Women, Year: 1994

Você pode gravar dados em sua implantação do MongoDB criando e modificando seus objetos Movie .

1

Em seu arquivo Main.java, adicione o seguinte código para criar uma instância de entidade Movie chamada myMovie e salvá-la no banco de dados:

var title = "A Real Pain";
var plot = "Mismatched cousins David and Benji tour Poland to honor their grandmother. " +
"Their adventure becomes complicated as old tensions resurface while exploring their family history.";
var year = 2024;
var cast = new String[]{"Jesse Eisenberg", "Kieran Culkin", "Will Sharpe"};
var myMovie = new Movie(title, plot, year, cast);
session.persist(myMovie);
System.out.println("Movie created with ID: " + myMovie.getId());

Este código cria uma nova instância de entidade Movie e utiliza o método session.persist() para salvá-la no banco de dados.

2

Adicione o seguinte código ao seu arquivo Main.java para atualizar a instância do Movie que você criou na etapa anterior:

var updatedCast = new String[]{"Jesse Eisenberg", "Kieran Culkin", "Will Sharpe", "Jennifer Grey"};
myMovie.setCast(updatedCast);
System.out.println("Movie updated with new cast member: " + updatedCast[3]);

Este código atualiza o campo cast da instância de entidade myMovie. A extensão ORM do Hibernar aplica esta alteração ao documento correspondente no banco de dados.

3

Adicione o seguinte código ao seu arquivo Main.java para excluir a instância de entidade myMovie:

session.remove(myMovie);
System.out.println("Movie deleted with ID: " + myMovie.getId());

Este código exclui a instância da entidade myMovie e seu documento correspondente do banco de dados.

4

Execute o arquivo Main.java em seu IDE. Sua saída contém detalhes sobre suas operações de gravação:

Hibernate: {"insert": "movies", "documents": [{"cast": {"$undefined": true}, "plot": {"$undefined": true}, "title": {"$undefined": true}, "year": {"$undefined": true}, "_id": {"$undefined": true}}]}
Hibernate: {"delete": "movies", "deletes": [{"q": {"_id": {"$eq": {"$undefined": true}}}, "limit": {"$numberInt": "0"}}]}
Movie created with ID: <ObjectId>
Movie updated with new cast member: Jennifer Grey
Movie deleted with ID: <ObjectId>

Parabéns por concluir o tutorial!

Observação

Se você tiver problemas neste tutorial, envie feedback usando a guia Rate this page no lado direito desta página.

Você pode encontrar suporte para perguntas gerais usando a tag MongoDB Stack Overflow ou a comunidade MongoDB Reddit.

Neste tutorial, você criou um aplicação Java que se conecta a um sistema do MongoDB hospedado no MongoDB Atlas e usa a extensão Hibername ORM para interagir com seus dados.

Para saber mais sobre a extensão Hibername ORM, consulte os seguintes recursos:

To view a Getting Started tutorial that shows how to install the Hibernate ORM extension and interact with book data, see the Getting Started With Hibernate ORM and MongoDB Foojay blog post.

Voltar

Visão geral