Maison  >  Article  >  Java  >  Quel est le mécanisme ORM du framework Java Hibernate ?

Quel est le mécanisme ORM du framework Java Hibernate ?

王林
王林original
2024-04-17 14:39:02354parcourir

Hibernate est un framework Java ORM utilisé pour établir un mappage entre les objets Java et les bases de données relationnelles. Son mécanisme ORM comprend les étapes suivantes : Annotation/Configuration : La classe d'objets est marquée avec des annotations ou des fichiers XML, spécifiant ses tables et colonnes de base de données mappées. Fabrique de sessions : gère la connexion entre Hibernate et la base de données. Session : représente une connexion active à la base de données et est utilisée pour effectuer des opérations de requête et de mise à jour. Persistance : enregistrez les données dans la base de données via la méthode save() ou update(). Requête : utilisez les critères et HQL pour définir des requêtes complexes afin de récupérer des données.

Java Hibernate 框架的 ORM 机制是什么?

Mécanisme ORM du framework Java Hibernate

Introduction

Hibernate est un framework Java Object Relational Mapping (ORM) populaire qui permet un mappage transparent entre les objets Java et les bases de données relationnelles. Le rôle d'un ORM est de gérer le processus de conversion de l'état des objets en enregistrements de base de données et vice versa, simplifiant ainsi le développement et la maintenance du code d'accès aux données.

Mécanisme ORM

Hibernate utilise des annotations Java ou des fichiers de configuration XML pour définir le mappage des objets aux tables de base de données. Il implémente ORM à travers les étapes clés suivantes :

  • Annotation/Configuration : Les classes d'objets sont balisées à l'aide d'annotations Hibernate (telles que @Entity, @Table) ou XML. fichiers de configuration, spécifiant la table et la colonne de la base de données auxquelles il correspond.
  • @Entity@Table)或 XML 配置文件进行标记,指定其映射到数据库中的哪个表和列。
  • 会话工厂:会话工厂管理 Hibernate 与数据库之间的连接。
  • 会话:会话表示与数据库的一个活动连接,用于执行查询和更新操作。
  • 持久化:要将数据保存到数据库中,对象必须通过 save()update() 方法持久化。
  • 查询:CriteriaHQL(Hibernate 查询语言)用于定义复杂查询,检索数据。

实战案例

我们创建一个 Java 类 Employee 来表示数据库中的员工表:

@Entity
@Table(name = "employees")
public class Employee {

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

    // 省略getter、setter和构造方法
}

main() 方法中,我们使用 Hibernate 配置文件 (hibernate.cfg.xml) 创建一个会话工厂,打开一个会话,保存一个 Employee

Session Factory : 🎜La session factory gère la connexion entre Hibernate et la base de données. 🎜🎜Session : 🎜Une session représente une connexion active à la base de données et est utilisée pour effectuer des opérations de requête et de mise à jour. 🎜🎜Persistance : 🎜Pour enregistrer les données dans la base de données, l'objet doit être rendu persistant via la méthode save() ou update(). 🎜🎜Requête : 🎜Criteria et HQL (Hibernate query Language) sont utilisés pour définir des requêtes complexes et récupérer des données. 🎜🎜Cas pratique🎜🎜🎜Nous créons une classe Java Employee pour représenter la table des employés dans la base de données : 🎜
public static void main(String[] args) {
    // 创建会话工厂
    SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();

    // 打开会话
    Session session = sessionFactory.openSession();
    session.beginTransaction();

    // 保存一个Employee对象
    Employee employee = new Employee();
    employee.setName("John Doe");
    employee.setSalary(10000);
    session.save(employee);

    // 查询所有Employee对象
    List<Employee> employees = session.createQuery("from Employee", Employee.class).list();

    // 打印员工信息
    for (Employee emp : employees) {
        System.out.println(emp.getName() + " - " + emp.getSalary());
    }

    // 提交事务并关闭会话
    session.getTransaction().commit();
    session.close();
}
🎜Dans main() Dans cette méthode, nous utilisons le fichier de configuration Hibernate (hibernate.cfg.xml) pour créer une fabrique de sessions, ouvrir une session, enregistrer un objet Employee et récupérer tous employés : 🎜rrreee

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn