Hibernate
-
Upload
ghazouani-mahdi -
Category
Technology
-
view
5.961 -
download
1
description
Transcript of Hibernate
1
HIBERNATE - Persistancerelationnelle en Java standard
EXPOSE SUR LA TECHNOLOGIE :
HIBERNATE
Elaboré par : Ghazouani Mahdi
2
Qu’est-ce que Hibernate ?
Historique
Architecture Hibernate
Avantages / Inconvénients
Déploiement et Configuration d’Hibernate
Mise en œuvre
Conclusion
SOMMAIRE
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 ?
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
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.
6
Schéma de fonctionnement
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
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
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
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
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)
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)
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" ;
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)
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
16
http://fr.wikipedia.org
http://www.hibernate.org
http://developpez.com/tutoriel/java/eclipse/hibernate
Netographie
17