Venez découvrir Hibernate ORM, un cadre de mappage objet-relationnel pour le langage de programmation Java

Table des matières

1. Qu'est-ce que l'ORM Hibernate

2. Comment utiliser Hibernate ORM

3. Les avantages et les fonctions d'Hibernate ORM


 

1. Qu'est-ce que l'ORM Hibernate

Hibernate est un framework de mappage objet-relationnel (ORM) open source populaire pour la persistance d'objets dans des applications Java vers des bases de données relationnelles. Il fournit un moyen simple et efficace de gérer l'accès et la manipulation de la base de données, permettant aux développeurs de se concentrer davantage sur la logique métier sans se soucier des détails de la base de données. Cet article présentera Hibernate ORM en détail.

Le framework Hibernate ORM a été créé par Gavin King et al., en 2001, sous le nom de framework "Hibernate Object/Relational Mapping". Au cours des dernières années, Hibernate est devenu l'un des frameworks ORM les plus populaires, grâce à son utilisation généralisée et au soutien de la communauté.

Les principales caractéristiques du framework Hibernate ORM incluent :

  1. Mappage objet-relationnel : Hibernate peut mapper directement des objets Java sur des tables de bases de données relationnelles et compléter automatiquement l'interaction avec la base de données via la technologie ORM. Cela signifie que les développeurs n'ont pas besoin d'écrire des instructions SQL ni de comprendre les détails de la structure des tables de la base de données.

  2. Requête de base de données : Hibernate fournit une API de requête riche qui permet aux développeurs d'effectuer facilement diverses requêtes de base de données. Ces requêtes peuvent être implémentées via HQL (Hibernate Query Language), Criteria API et des instructions SQL natives.

  3. Gestion des transactions : Hibernate prend en charge la gestion des transactions, qui peut garantir que toutes les opérations de base de données sont effectuées dans une unité atomique lors de la création, de la mise à jour ou de la suppression d'objets. Cela garantit l'intégrité et la cohérence des données.

  4. Gestion du cache : Hibernate fournit un mécanisme de mise en cache qui aide les développeurs à réduire le nombre d'interactions avec la base de données et à améliorer les performances des applications. La mise en cache Hibernate comprend un cache de premier niveau et un cache de second niveau, qui peuvent être facilement configurés et personnalisés.

  5. Transparence : Un autre avantage majeur du framework Hibernate ORM est sa transparence. Cela signifie que les développeurs peuvent programmer à l'aide d'objets Java sans avoir à traiter directement avec des instructions SQL ou des structures de table de base de données. Hibernate mappera automatiquement les objets Java à la structure de la table de la base de données et effectuera les conversions nécessaires si nécessaire.

Ce qui suit est un exemple simple de framework Hibernate ORM qui montre comment conserver des objets Java dans une base de données relationnelle.

Tout d'abord, vous devez ajouter les dépendances des pilotes Hibernate et JDBC à votre application. Voici un exemple de dépendance Maven :

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>5.5.6.Final</version>
</dependency>

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.26</version>
</dependency>

Ensuite, vous pouvez utiliser les annotations pertinentes d'Hibernate (telles que @Entity, @Column, etc.) pour marquer les classes d'entités Java et spécifier comment elles sont mappées aux tables de la base de données. Voici un exemple de code :

@Entity
@Table(name = "users")
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(name = "username")
    private String username;

    @Column(name = "password")
    private String password;

    // getters and setters for all fields
}

Dans cet exemple, la classe User est annotée @Entity pour indiquer qu'il s'agit d'une classe d'entité Hibernate et peut être mappée à une table de base de données nommée "users". Il contient également des propriétés d'identifiant, de nom d'utilisateur et de mot de passe annotées comme @Id, @GeneratedValue et @Column pour spécifier comment elles correspondent aux champs de table de base de données.

Enfin, vous pouvez utiliser l'API de session d'Hibernate pour effectuer des opérations de base de données telles que l'insertion de nouveaux enregistrements d'utilisateurs.

 

2. Comment utiliser Hibernate ORM

Hibernate ORM est un framework ORM (Object Relational Mapping) écrit en Java qui fournit un moyen de mapper entre les objets d'une application Java et une base de données relationnelle. Avec Hibernate, les développeurs peuvent utiliser des méthodes orientées objet pour exploiter des bases de données relationnelles et réduire la quantité de code qui utilise JDBC directement. Voici un exemple simple d'Hibernate ORM qui montre comment utiliser Hibernate ORM pour mapper des objets Java à des tables de bases de données relationnelles.

Tout d'abord, vous devez ajouter les dépendances et les fichiers de configuration nécessaires à votre application Web. Voici un exemple construit sur Maven :

<dependency>
   <groupId>org.hibernate</groupId>
   <artifactId>hibernate-core</artifactId>
   <version>5.4.32.Final</version>
</dependency>

<dependency>
   <groupId>mysql</groupId>
   <artifactId>mysql-connector-java</artifactId>
   <version>8.0.23</version>
</dependency>

Ensuite, vous pouvez créer une classe d'entité Hibernate, telle que la classe Person, qui représente une table dans la base de données. Voici un exemple de code :

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class Person {

   @Id
   @GeneratedValue(strategy=GenerationType.IDENTITY)
   private int id;

   private String name;
   private int age;

   // getters and setters for id, name, and age

}

Dans cet exemple, la classe Person est annotée @Entity pour indiquer qu'il s'agit d'une classe d'entité Hibernate. Il contient trois champs : id, name et age, et les méthodes getter et setter correspondantes. Le champ id est annoté comme @Id, et la stratégie @GeneratedValue est spécifiée comme IDENTITY, indiquant qu'il s'agit d'une clé primaire à augmentation automatique.

Enfin, vous pouvez créer un objet fabrique de session Hibernate et l'utiliser pour manipuler les tables de la base de données. Voici un exemple de code :

import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernateUtil {

   private static SessionFactory sessionFactory = buildSessionFactory();

   private static SessionFactory buildSessionFactory() {
       try {
           Configuration configuration = new Configuration();
           configuration.configure("hibernate.cfg.xml");
           return configuration.buildSessionFactory();
       }
       catch (Throwable ex) {
           System.err.println("Initial SessionFactory creation failed." + ex);
           throw new ExceptionInInitializerError(ex);
       }
   }

   public static SessionFactory getSessionFactory() {
       return sessionFactory;
   }

   public static void shutdown() {
       getSessionFactory().close();
   }

}

Dans cet exemple, la classe HibernateUtil contient une méthode buildSessionFactory() qui utilise le fichier de configuration hibernate.cfg.xml pour construire un objet fabrique de session Hibernate. Le fichier hibernate.cfg.xml contient des informations sur la connexion à la base de données, telles que l'URL de la base de données, le nom d'utilisateur et le mot de passe. La méthode getSessionFactory() renvoie l'objet fabrique de session Hibernate, qui peut être partagé dans l'application. Enfin, la méthode shutdown() ferme l'objet fabrique de session Hibernate.

Grâce aux étapes ci-dessus, vous pouvez maintenant utiliser Hibernate ORM pour mapper des objets Java sur des tables de bases de données relationnelles et effectuer des opérations. Les opérations courantes incluent l'insertion de données, l'interrogation de données, la mise à jour de données et la suppression de données. Voici un exemple de code :

Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();

Person person = new Person();
person.setName("John");
person.setAge(25);

session.save(person);

session.getTransaction().commit();

Cet exemple de code crée un nouvel objet Person, définit son nom et son âge, et l'enregistre dans la base de données à l'aide d'une session Hibernate. La méthode beginTransaction() démarre une transaction, la méthode save() enregistre l'objet Person dans la base de données et la méthode getTransaction().commit() valide la transaction. Vous pouvez également utiliser d'autres méthodes Hibernate pour réaliser des opérations plus complexes.

En résumé, Hibernate ORM est un framework ORM qui fournit un mappage entre les objets dans les applications Java et les bases de données relationnelles. En utilisant Hibernate ORM, les développeurs peuvent utiliser une approche orientée objet pour manipuler les bases de données relationnelles et réduire la quantité de code qui utilise JDBC directement. Ce qui précède est un exemple simple d'Hibernate ORM, qui montre comment mapper des objets Java sur des tables de bases de données relationnelles et effectuer des opérations.

 

3. Les avantages et les fonctions d'Hibernate ORM

Hibernate ORM est un cadre de mappage objet-relationnel pour le langage de programmation Java, qui fournit un moyen de mapper des classes Java à des tables de base de données relationnelles et d'exploiter la base de données de manière orientée objet . Hibernate ORM présente les avantages suivants :

  1. Persistance des données simplifiée : par rapport au JDBC traditionnel, Hibernate ORM résume de nombreux détails de la persistance des données, permettant aux développeurs d'effectuer des opérations sur les données sans écrire manuellement des instructions SQL complexes.

  2. Hautement personnalisable : Hibernate ORM permet l'établissement d'une relation complète entre les entités, prend en charge l'héritage et le polymorphisme, et fournit également diverses options de configuration pour répondre aux divers besoins de l'entreprise.

  3. Transparence : lors de l'utilisation d'Hibernate ORM, les développeurs peuvent s'appuyer entièrement sur le modèle d'objet sans avoir à se soucier des détails de la base de données sous-jacente. Hibernate ORM est responsable de la gestion de toutes les opérations de données, y compris la lecture et l'écriture de données à partir de la base de données.

  4. Améliorer les performances : Hibernate ORM utilise la technologie de mise en cache, qui peut réduire le nombre d'accès à la base de données et améliorer les performances. De plus, Hibernate ORM dispose également d'une fonction de gestion des transactions, qui peut assurer la sécurité et l'intégrité des données.

  5. Portabilité : Hibernate ORM est construit sur l'API standard Java Persistence (JPA), qui peut être facilement intégrée à d'autres implémentations JPA et commutée de manière transparente entre différentes bases de données.

Avantages d'utiliser Hibernate ORM :

  1. Améliorer l'efficacité du développement : Hibernate ORM simplifie la complexité de la persistance des données, permettant aux développeurs d'implémenter plus rapidement la logique métier.

  2. Réduire les erreurs : Hibernate ORM fournit une méthode de requête de type sécurisé et peut vérifier les erreurs de syntaxe au moment de la compilation, réduisant ainsi les erreurs de code.

  3. Améliorez l'évolutivité de l'application : grâce à Hibernate ORM, les développeurs peuvent facilement modifier le modèle de données et le schéma de la base de données, ce qui rend l'application plus évolutive.

  4. Améliorer la lisibilité du code : Hibernate ORM utilise une approche orientée objet de la manipulation des données, ce qui facilite la compréhension et la maintenance du code.

En conclusion, Hibernate ORM est un cadre ORM très puissant qui aide les développeurs à atteindre plus facilement la persistance des données. Son niveau d'abstraction est supérieur à celui de JDBC, ce qui simplifie le processus de persistance des données. Il est hautement personnalisable, portable et présente des avantages en termes de performances, ce qui le rend adapté aux applications de niveau entreprise qui doivent gérer de grandes quantités d'accès à la base de données.

 

Je suppose que tu aimes

Origine blog.csdn.net/2301_77899321/article/details/131423810
conseillé
Classement