SlideShare uma empresa Scribd logo
1 de 17
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

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.youssfiENSET, Université Hassan II Casablanca
 
Hibernate presentation
Hibernate presentationHibernate presentation
Hibernate presentationManav Prasad
 
Introduction à React JS
Introduction à React JSIntroduction à React JS
Introduction à React JSAbdoulaye Dieng
 
Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring bootAntoine Rey
 
Hibernate architecture
Hibernate architectureHibernate architecture
Hibernate architectureAnurag
 
Spring boot
Spring bootSpring boot
Spring bootsdeeg
 
softCours design pattern m youssfi partie 9 creation des objets abstract fact...
softCours design pattern m youssfi partie 9 creation des objets abstract fact...softCours design pattern m youssfi partie 9 creation des objets abstract fact...
softCours design pattern m youssfi partie 9 creation des objets abstract fact...ENSET, Université Hassan II Casablanca
 
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)ENSET, Université Hassan II Casablanca
 
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 2014Ippon
 
Formation JAVA/J2EE
Formation JAVA/J2EEFormation JAVA/J2EE
Formation JAVA/J2EEInes Ouaz
 
Technologies sur angular.pptx
Technologies sur angular.pptxTechnologies sur angular.pptx
Technologies sur angular.pptxIdrissaDembl
 

Mais procurados (20)

Spring & hibernate
Spring & hibernateSpring & hibernate
Spring & hibernate
 
Introduction à React
Introduction à ReactIntroduction à React
Introduction à React
 
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
 
Hibernate presentation
Hibernate presentationHibernate presentation
Hibernate presentation
 
Introduction à React JS
Introduction à React JSIntroduction à React JS
Introduction à React JS
 
Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring boot
 
React js
React jsReact js
React js
 
Hibernate architecture
Hibernate architectureHibernate architecture
Hibernate architecture
 
Spring boot
Spring bootSpring boot
Spring boot
 
Spring boot
Spring bootSpring boot
Spring boot
 
Maven et industrialisation du logiciel
Maven et industrialisation du logicielMaven et industrialisation du logiciel
Maven et industrialisation du logiciel
 
softCours design pattern m youssfi partie 9 creation des objets abstract fact...
softCours design pattern m youssfi partie 9 creation des objets abstract fact...softCours design pattern m youssfi partie 9 creation des objets abstract fact...
softCours design pattern m youssfi partie 9 creation des objets abstract fact...
 
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
 
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)
 
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
 
Formation JAVA/J2EE
Formation JAVA/J2EEFormation JAVA/J2EE
Formation JAVA/J2EE
 
JPA and Hibernate
JPA and HibernateJPA and Hibernate
JPA and Hibernate
 
Technologies sur angular.pptx
Technologies sur angular.pptxTechnologies sur angular.pptx
Technologies sur angular.pptx
 
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
 
Spring MVC
Spring MVCSpring MVC
Spring MVC
 

Destaque

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 ApplicationAdil Ourida
 
Presentation hibernate nfe103
Presentation hibernate nfe103Presentation hibernate nfe103
Presentation hibernate nfe103MRamo2s
 
Hibernate Presentation
Hibernate  PresentationHibernate  Presentation
Hibernate Presentationguest11106b
 
Introduction à Hibernate p.1
Introduction à Hibernate p.1Introduction à Hibernate p.1
Introduction à Hibernate p.1ATHMAN HAJ-HAMOU
 
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!bleporini
 
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 LDAPParis, France
 
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 javaDouglas MBIANDOU
 
Persistance avec JPA
Persistance avec JPAPersistance avec JPA
Persistance avec JPAsimeon
 
Spring Security - TeeJUG 2008
Spring Security - TeeJUG 2008Spring Security - TeeJUG 2008
Spring Security - TeeJUG 2008teejug
 
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 5Kristen Le Liboux
 
Bonnes pratiques de developpement en PHP
Bonnes pratiques de developpement en PHPBonnes pratiques de developpement en PHP
Bonnes pratiques de developpement en PHPPascal MARTIN
 

Destaque (20)

4 Hibernate
4 Hibernate4 Hibernate
4 Hibernate
 
Tutoriel J2EE
Tutoriel J2EETutoriel J2EE
Tutoriel J2EE
 
Hibernate
HibernateHibernate
Hibernate
 
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
 
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
 
Présentation SOA
Présentation SOAPrésentation SOA
Présentation SOA
 
Bonnes pratiques de developpement en PHP
Bonnes pratiques de developpement en PHPBonnes pratiques de developpement en PHP
Bonnes pratiques de developpement en PHP
 

Semelhante a Hibernate

Presentation Spring, Spring MVC
Presentation Spring, Spring MVCPresentation Spring, Spring MVC
Presentation Spring, Spring MVCNathaniel Richand
 
Symfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 PerformantSymfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 PerformantHugo Hamon
 
Framework Hibernate
Framework HibernateFramework Hibernate
Framework HibernateInes Ouaz
 
La mobilité dans Drupal
La mobilité dans DrupalLa mobilité dans Drupal
La mobilité dans DrupalAdyax
 
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 !VISEO
 
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'OfflineDNG Consulting
 
#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 CodeIgniterAtsé François-Xavier KOBON
 
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 MobileIppon
 
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éJulien Dubois
 
20081113 - Nantes Jug - Apache Maven
20081113 - Nantes Jug - Apache Maven20081113 - Nantes Jug - Apache Maven
20081113 - Nantes Jug - Apache MavenArnaud Héritier
 
Aperçu de RequireJS
Aperçu de RequireJSAperçu de RequireJS
Aperçu de RequireJSVISEO
 
Design poo togo_jug_final
Design poo togo_jug_finalDesign poo togo_jug_final
Design poo togo_jug_finalDuchess France
 
Design poo togo_jug_final
Design poo togo_jug_finalDesign poo togo_jug_final
Design poo togo_jug_finalagnes_crepet
 
Atelier hadoop-single-sign-on
Atelier hadoop-single-sign-onAtelier hadoop-single-sign-on
Atelier hadoop-single-sign-onsahar dridi
 
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'informationsChristopheTricot
 

Semelhante a 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 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
 
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é
 
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
 

Mais de Ghazouani Mahdi

Mais 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