Hibernate

17
1 HIBERNATE - Persistance relationnelle en Java standard EXPOSE SUR LA TECHNOLOGIE : HIBERNATE Elaboré par : Ghazouani Mahdi

description

Introduction à Hibernate

Transcript of Hibernate

Page 1: Hibernate

1

HIBERNATE - Persistancerelationnelle en Java standard

EXPOSE SUR LA TECHNOLOGIE :

HIBERNATE

Elaboré par : Ghazouani Mahdi

Page 2: Hibernate

2

Qu’est-ce que Hibernate ?

Historique

Architecture Hibernate

Avantages / Inconvénients

Déploiement et Configuration d’Hibernate

Mise en œuvre

Conclusion

SOMMAIRE

Page 3: Hibernate

3

Hibernate est un projet ‘Open Source’ visant à proposer un outil de mapping entre les objets et les données dans une base de données relationnelle.

Ce projet ne repose sur aucun standard mais il est très populaire notamment à cause de ses bonnes performances et de son ouverture avec de nombreuses bases de données.

Hibernate apporte une solution aux problèmes d'adaptation entre le paradigme objet et les SGBD en remplaçant les accès à la base de données par des appels à des méthodes objet de haut niveau.

Qu’est-ce que Hibernate ?

Page 4: Hibernate

4

Hibernate a été développé par un groupe de développeurs Java dirigés par Gavin King.

L'entreprise JBoss (maintenant une division de Red Hat) a embauché les développeurs principaux d'Hibernate et a travaillé avec eux afin de maintenir et développer le produit.

Historique

Page 5: Hibernate

5

Architecture

La couche d'accès aux données.

Le lien entre les classes exposées et la source physique des données (souvent une base de données relationnelle) est définie par un fichier xml. D'où mapping objet-relationnel.

Ce type de technologie peut être appelé framework de

mapping objet-relationnel ou de persistance objet

des données.

Page 6: Hibernate

6

Schéma de fonctionnement

Page 7: Hibernate

7

Gain du temps si on utilise des outils pour générer automatiquement la base de données et le code.

Les objets métiers sont plus faciles à manipuler.

Peu de dépendance envers une base de données précise.

Avantages

Page 8: Hibernate

8

Nécessite d'apprendre à l'utiliser (son utilisation n’est pas fondamentale)

Tous les problèmes ne sont pas résolus car Hibernate est une technologie jeune

Inconvénients

Page 9: Hibernate

9

Téléchargez et installez J2SE 1.4 SDK.

Téléchargez et installez Eclipse

Télécharger Hibernate : "http://hibernatesynch.sourceforge.net/"

Ouvrir Eclipse et importer le dossier contenant Hibernate

Déploiement d’Hibernate

Page 10: Hibernate

10

La référence du SGBD utilisée

Informations de connexion (Driver JDBC, url de connexion, login, mot de passe)

Le mapping entre le modèle de classes et la base de données

<session-factory<property name="hibernate.dialect"> org.hibernate.dialect.PostgreSQLDialect</property> <property name="hibernate.connection.driver_class"> org.postgresql.Driver</property> <property name="hibernate.connection.url"> jdbc:postgresql://localhost/e-commerce</property> <property name="hibernate.connection.username"> postgres</property> <property name="hibernate.connection.password"> administrateur</property>

Configuration d’Hibernate

Page 11: Hibernate

11

1. Définition des classes entités

package hello;public class Message { private Long id; private String text; private Message nextMessage;

private Message() {} public Message(String text) { this.text = text; }

/* getters, setters */}

Mise en œuvre d’Hibernate (1)

Page 12: Hibernate

12

2. Mapping des entités dans la base de données

<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd"><hibernate-mapping> <class name="hello.Message“ table="MESSAGES"> <id name="id“ column="MESSAGE_ID"> <generator class="increment"/> </id> <property name="text“ column="MESSAGE_TEXT"/> <many-to-one name="nextMessage“ cascade="all“ column="NEXT_MESSAGE_ID"/> </class></hibernate-mapping>

java net.sf.hibernate.tool.hbm2ddl.SchemaExport --text --format --output=ex2bis.ddl delimeter=x *.hbm.xml

create table Message (id INT not null,String text,Message nextMessage,…

primary key (id))

Mise en œuvre d’Hibernate (2)

Page 13: Hibernate

13

3. Manipulation des données via l’objet Hibernate Session

Session session = getSessionFactory().openSession();Transaction tx = session.beginTransaction();Message message = new Message("Hello World");session.save(message);message.setMESSAGE_TEXT("Bonjour");tx.commit();session.close();

Mise en œuvre d’Hibernate (3)insert into MESSAGES (MESSAGE_ID, MESSAGE_TEXT, NEXT_MESSAGE_ID)values (1, 'Hello World', null);

Update MESSAGES Set MESSAGE_TEXT="Bonjour"  where MESSAGE_ID="1" ;

Page 14: Hibernate

14

4. Requêtage

SQL

HQL est totalement orienté objet, comprenant des notions d'héritage, de polymorphisme et d'association.

C’est une API(ensemble de fonctionnalités) d'interrogation par critères intuitive et extensible.

HQL

Criteria

Le SQL est utile si vous souhaitez utiliser les fonctionnalités spécifiques de votre base de données comme le mot clé CONNECT d'Oracle

Mise en œuvre d’Hibernate (4)

Page 15: Hibernate

15

Optimisation du temps de développement du programmeur. Des applications plus homogènesDes applications facilement migrables aussi (pensez que pour changer de base de données, il suffit juste de toucher à hibernate.cfg.xml)Technologie prometteuse (Sortie d’une version NHIBERNATE compatible avec DOT NET)

Conclusion

Page 16: Hibernate

16

http://fr.wikipedia.org

http://www.hibernate.org

http://developpez.com/tutoriel/java/eclipse/hibernate

Netographie

Page 17: Hibernate

17