SlideShare une entreprise Scribd logo
1  sur  17
1 HIBERNATE - Persistance relationnelle en Java standard EXPOSE SUR LA TECHNOLOGIE : HIBERNATE  Elaboré par : GhazouaniMahdi
2 SOMMAIRE Qu’est-ce que Hibernate ? Historique Architecture Hibernate Avantages / Inconvénients Déploiement et Configuration d’Hibernate Mise en œuvre  Conclusion
3 Qu’est-ce que Hibernate ? 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.
4 Historique 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.
5 Architecture Ce type de technologie peut être appelé framework de mapping objet-relationnel ou de persistance objet des données.  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.
6 Schéma de fonctionnement
7 Avantages 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.
8 Inconvénients 	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
9 Déploiement d’Hibernate 	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
10 Configuration d’Hibernate <session-factory <propertyname="hibernate.dialect"> org.hibernate.dialect.PostgreSQLDialect</property> <property name="hibernate.connection.driver_class"> org.postgresql.Driver</property> <propertyname="hibernate.connection.url"> jdbc:postgresql://localhost/e-commerce</property>     <property name="hibernate.connection.username"> postgres</property>     <property name="hibernate.connection.password"> administrateur</property> … 	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
11 Mise en œuvre d’Hibernate (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 */ }
12 Mise en œuvre d’Hibernate (2) create table Message ( id INT not null, String text, Message nextMessage, … primary key (id) )	 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
13 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" ; 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();
14 Mise en œuvre d’Hibernate (4) Requêtage 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 SQL HQL est totalement orienté objet, comprenant des notions d'héritage, de polymorphisme et d'association. HQL C’est une API(ensemble de fonctionnalités) d'interrogation par critères intuitive et extensible. Criteria
15 Conclusion 	Optimisation du temps de développement du programmeur.  	Des applications plus homogènes 	Des 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)
16 Netographie http://fr.wikipedia.org http://www.hibernate.org http://developpez.com/tutoriel/java/eclipse/hibernate
17

Contenu connexe

Tendances

Tendances (20)

Microservices avec Spring Cloud
Microservices avec Spring CloudMicroservices avec Spring Cloud
Microservices avec Spring Cloud
 
Support de cours technologie et application m.youssfi
Support de cours technologie et application m.youssfiSupport de cours technologie et application m.youssfi
Support de cours technologie et application m.youssfi
 
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka StreamsTraitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
 
Architecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependancesArchitecture jee principe de inversion de controle et injection des dependances
Architecture jee principe de inversion de controle et injection des dependances
 
Support NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDBSupport NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDB
 
Theses Soutenues sous Direction et Co-Direction du Pr YOUSSFI
Theses Soutenues sous Direction et Co-Direction du Pr YOUSSFITheses Soutenues sous Direction et Co-Direction du Pr YOUSSFI
Theses Soutenues sous Direction et Co-Direction du Pr YOUSSFI
 
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...Mohamed youssfi support architectures logicielles distribuées basées sue les ...
Mohamed youssfi support architectures logicielles distribuées basées sue les ...
 
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
Développement d'un site web jee de e commerce basé sur spring (m.youssfi)
 
Chp5 - Diagramme d'Etat Transition
Chp5 - Diagramme d'Etat TransitionChp5 - Diagramme d'Etat Transition
Chp5 - Diagramme d'Etat Transition
 
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfiJava entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
 
Android-Tp1: éléments graphiques de base et intents
Android-Tp1: éléments graphiques de base et intentsAndroid-Tp1: éléments graphiques de base et intents
Android-Tp1: éléments graphiques de base et intents
 
Spring boot anane maryem ben aziza syrine
Spring boot anane maryem ben aziza syrineSpring boot anane maryem ben aziza syrine
Spring boot anane maryem ben aziza syrine
 
Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring boot
 
Android-Tp2: liste et adaptateurs
Android-Tp2: liste et adaptateursAndroid-Tp2: liste et adaptateurs
Android-Tp2: liste et adaptateurs
 
Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
 
Cours design pattern m youssfi partie 6 proxy
Cours design pattern m youssfi partie 6 proxyCours design pattern m youssfi partie 6 proxy
Cours design pattern m youssfi partie 6 proxy
 
Support JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVCSupport JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVC
 
Android - Tp1 - installation et démarrage
Android - Tp1 -   installation et démarrageAndroid - Tp1 -   installation et démarrage
Android - Tp1 - installation et démarrage
 
BI : Analyse des Données avec Mondrian
BI : Analyse des Données avec Mondrian BI : Analyse des Données avec Mondrian
BI : Analyse des Données avec Mondrian
 
applications-reparties
applications-repartiesapplications-reparties
applications-reparties
 

En vedette

Android fundamentals and communication with Java EE Application
Android fundamentals and communication with Java EE ApplicationAndroid fundamentals and communication with Java EE Application
Android fundamentals and communication with Java EE Application
Adil Ourida
 
Presentation hibernate nfe103
Presentation hibernate nfe103Presentation hibernate nfe103
Presentation hibernate nfe103
MRamo2s
 
Hibernate Presentation
Hibernate  PresentationHibernate  Presentation
Hibernate Presentation
guest11106b
 
Spring Security - TeeJUG 2008
Spring Security - TeeJUG 2008Spring Security - TeeJUG 2008
Spring Security - TeeJUG 2008
teejug
 

En vedette (20)

4 Hibernate
4 Hibernate4 Hibernate
4 Hibernate
 
Tutoriel J2EE
Tutoriel J2EETutoriel J2EE
Tutoriel J2EE
 
Hibernate
HibernateHibernate
Hibernate
 
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
 
Hibernate 3
Hibernate 3Hibernate 3
Hibernate 3
 
Android fundamentals and communication with Java EE Application
Android fundamentals and communication with Java EE ApplicationAndroid fundamentals and communication with Java EE Application
Android fundamentals and communication with Java EE Application
 
Presentation hibernate nfe103
Presentation hibernate nfe103Presentation hibernate nfe103
Presentation hibernate nfe103
 
Hibernate Presentation
Hibernate  PresentationHibernate  Presentation
Hibernate Presentation
 
Introduction à Hibernate p.1
Introduction à Hibernate p.1Introduction à Hibernate p.1
Introduction à Hibernate p.1
 
Hibernate et jsf
Hibernate et jsfHibernate et jsf
Hibernate et jsf
 
JDBC / JPA / Hibernate: Sans maîtrise la puissance n’est rien!
JDBC / JPA / Hibernate: Sans maîtrise la puissance n’est rien!JDBC / JPA / Hibernate: Sans maîtrise la puissance n’est rien!
JDBC / JPA / Hibernate: Sans maîtrise la puissance n’est rien!
 
OpenDS - Open Source Java LDAP server
OpenDS - Open Source Java LDAP serverOpenDS - Open Source Java LDAP server
OpenDS - Open Source Java LDAP server
 
Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP
Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAPPlone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP
Plone - Déployer un intranet collaboratif avec intégration d'un annuaire LDAP
 
OBJIS Congo présente 10 reperes cle du developpeur java
OBJIS Congo présente 10 reperes cle du developpeur javaOBJIS Congo présente 10 reperes cle du developpeur java
OBJIS Congo présente 10 reperes cle du developpeur java
 
Introduction à JPA (Java Persistence API )
Introduction à JPA  (Java Persistence API )Introduction à JPA  (Java Persistence API )
Introduction à JPA (Java Persistence API )
 
Persistance avec JPA
Persistance avec JPAPersistance avec JPA
Persistance avec JPA
 
Spring Security - TeeJUG 2008
Spring Security - TeeJUG 2008Spring Security - TeeJUG 2008
Spring Security - TeeJUG 2008
 
Javascript et JQuery
Javascript et JQueryJavascript et JQuery
Javascript et JQuery
 
Programmation orientée objet en PHP 5
Programmation orientée objet en PHP 5Programmation orientée objet en PHP 5
Programmation orientée objet en PHP 5
 
Presentation JPA
Presentation JPAPresentation JPA
Presentation JPA
 

Similaire à Hibernate

Presentation Spring, Spring MVC
Presentation Spring, Spring MVCPresentation Spring, Spring MVC
Presentation Spring, Spring MVC
Nathaniel Richand
 
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
Atsé François-Xavier KOBON
 
La caisse à outils de la visualisation d'informations
La caisse à outils de la visualisation d'informationsLa caisse à outils de la visualisation d'informations
La caisse à outils de la visualisation d'informations
ChristopheTricot
 

Similaire à Hibernate (20)

Presentation Spring, Spring MVC
Presentation Spring, Spring MVCPresentation Spring, Spring MVC
Presentation Spring, Spring MVC
 
Symfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 PerformantSymfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 Performant
 
Drupal & Mobilité
Drupal & MobilitéDrupal & Mobilité
Drupal & Mobilité
 
Framework Hibernate
Framework HibernateFramework Hibernate
Framework Hibernate
 
La mobilité dans Drupal
La mobilité dans DrupalLa mobilité dans Drupal
La mobilité dans Drupal
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !
 
Cours Php
Cours PhpCours Php
Cours Php
 
Cours Php
Cours PhpCours Php
Cours Php
 
Présentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'OfflinePrésentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'Offline
 
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
#J2Code2018 - Mettez du feu à vos applications avec CodeIgniter
 
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et mobilité
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et mobilitéNouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et mobilité
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et mobilité
 
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et MobileNouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
 
20081113 - Nantes Jug - Apache Maven
20081113 - Nantes Jug - Apache Maven20081113 - Nantes Jug - Apache Maven
20081113 - Nantes Jug - Apache Maven
 
JsPhDDefense
JsPhDDefenseJsPhDDefense
JsPhDDefense
 
Tutoriel java
Tutoriel javaTutoriel java
Tutoriel java
 
Aperçu de RequireJS
Aperçu de RequireJSAperçu de RequireJS
Aperçu de RequireJS
 
Design poo togo_jug_final
Design poo togo_jug_finalDesign poo togo_jug_final
Design poo togo_jug_final
 
Design poo togo_jug_final
Design poo togo_jug_finalDesign poo togo_jug_final
Design poo togo_jug_final
 
Atelier hadoop-single-sign-on
Atelier hadoop-single-sign-onAtelier hadoop-single-sign-on
Atelier hadoop-single-sign-on
 
La caisse à outils de la visualisation d'informations
La caisse à outils de la visualisation d'informationsLa caisse à outils de la visualisation d'informations
La caisse à outils de la visualisation d'informations
 

Plus de Ghazouani Mahdi (8)

RIA
RIARIA
RIA
 
Soa & services web
Soa & services webSoa & services web
Soa & services web
 
Memo java
Memo javaMemo java
Memo java
 
Mécanismes de sécurité
Mécanismes de sécuritéMécanismes de sécurité
Mécanismes de sécurité
 
J2EE vs .NET
J2EE vs .NETJ2EE vs .NET
J2EE vs .NET
 
Multithreading
MultithreadingMultithreading
Multithreading
 
Architecture des Systèmes Logiciels
Architecture des Systèmes LogicielsArchitecture des Systèmes Logiciels
Architecture des Systèmes Logiciels
 
Moteurs&méta-moteurs de recherche
Moteurs&méta-moteurs de rechercheMoteurs&méta-moteurs de recherche
Moteurs&méta-moteurs de recherche
 

Hibernate

  • 1. 1 HIBERNATE - Persistance relationnelle en Java standard EXPOSE SUR LA TECHNOLOGIE : HIBERNATE Elaboré par : GhazouaniMahdi
  • 2. 2 SOMMAIRE Qu’est-ce que Hibernate ? Historique Architecture Hibernate Avantages / Inconvénients Déploiement et Configuration d’Hibernate Mise en œuvre Conclusion
  • 3. 3 Qu’est-ce que Hibernate ? 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.
  • 4. 4 Historique 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.
  • 5. 5 Architecture Ce type de technologie peut être appelé framework de mapping objet-relationnel ou de persistance objet des données. 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.
  • 6. 6 Schéma de fonctionnement
  • 7. 7 Avantages 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.
  • 8. 8 Inconvénients 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
  • 9. 9 Déploiement d’Hibernate 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
  • 10. 10 Configuration d’Hibernate <session-factory <propertyname="hibernate.dialect"> org.hibernate.dialect.PostgreSQLDialect</property> <property name="hibernate.connection.driver_class"> org.postgresql.Driver</property> <propertyname="hibernate.connection.url"> jdbc:postgresql://localhost/e-commerce</property> <property name="hibernate.connection.username"> postgres</property> <property name="hibernate.connection.password"> administrateur</property> … 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
  • 11. 11 Mise en œuvre d’Hibernate (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 */ }
  • 12. 12 Mise en œuvre d’Hibernate (2) create table Message ( id INT not null, String text, Message nextMessage, … primary key (id) ) 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
  • 13. 13 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" ; 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();
  • 14. 14 Mise en œuvre d’Hibernate (4) Requêtage 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 SQL HQL est totalement orienté objet, comprenant des notions d'héritage, de polymorphisme et d'association. HQL C’est une API(ensemble de fonctionnalités) d'interrogation par critères intuitive et extensible. Criteria
  • 15. 15 Conclusion Optimisation du temps de développement du programmeur. Des applications plus homogènes Des 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)
  • 16. 16 Netographie http://fr.wikipedia.org http://www.hibernate.org http://developpez.com/tutoriel/java/eclipse/hibernate
  • 17. 17