1<br />HIBERNATE - Persistance<br />relationnelle en Java standard<br />EXPOSE SUR LA TECHNOLOGIE :<br />HIBERNATE <br />E...
2<br />SOMMAIRE<br />Qu’est-ce que Hibernate ?<br />Historique<br />Architecture Hibernate<br />Avantages / Inconvénients<...
3<br />Qu’est-ce que Hibernate ?<br />Hibernate est un projet ‘Open Source’ visant à proposer un outil de mapping entre le...
4<br />Historique<br />Hibernate a été développé par un groupe de développeurs Java dirigés par Gavin King.<br />L&apos;en...
5<br />Architecture<br />Ce type de technologie peut être appelé framework de mapping objet-relationnel ou de persistance ...
6<br />Schéma de fonctionnement<br />
7<br />Avantages<br />Gain du temps si on utilise des outils pour générer automatiquement la base de données et le code.<b...
8<br />Inconvénients<br />	Nécessite d&apos;apprendre à l&apos;utiliser (son utilisation n’est pas fondamentale)<br />	Tou...
9<br />Déploiement d’Hibernate<br />	Téléchargez et installez J2SE 1.4 SDK. <br />	Téléchargez et installez Eclipse<br />	...
10<br />Configuration d’Hibernate<br />&lt;session-factory<br />&lt;propertyname=&quot;hibernate.dialect&quot;&gt;<br />or...
11<br />Mise en œuvre d’Hibernate (1)<br />Définition des classes entités<br />package hello;<br />public class Message {<...
12<br />Mise en œuvre d’Hibernate (2)<br />create table Message (<br />id INT not null,<br />String text,<br />Message nex...
13<br />Mise en œuvre d’Hibernate (3)<br />insert into MESSAGES (MESSAGE_ID,  MESSAGE_TEXT, NEXT_MESSAGE_ID)<br />values (...
14<br />Mise en œuvre d’Hibernate (4)<br />Requêtage<br />Le SQL est utile si vous souhaitez utiliser les fonctionnalités ...
15<br />Conclusion<br />	Optimisation du temps de développement du programmeur. <br />	Des applications plus homogènes<br ...
16<br />Netographie<br />http://fr.wikipedia.org<br />http://www.hibernate.org<br />http://developpez.com/tutoriel/java/ec...
17<br />
Prochain SlideShare
Chargement dans…5
×

Hibernate

6 718 vues

Publié le

Introduction à Hibernate

Publié dans : Technologie
1 commentaire
0 j’aime
Statistiques
Remarques
  • Thanks for providing such a good info:
    Training
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici
  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
6 718
Sur SlideShare
0
Issues des intégrations
0
Intégrations
33
Actions
Partages
0
Téléchargements
414
Commentaires
1
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Hibernate

  1. 1. 1<br />HIBERNATE - Persistance<br />relationnelle en Java standard<br />EXPOSE SUR LA TECHNOLOGIE :<br />HIBERNATE <br />Elaboré par : GhazouaniMahdi<br />
  2. 2. 2<br />SOMMAIRE<br />Qu’est-ce que Hibernate ?<br />Historique<br />Architecture Hibernate<br />Avantages / Inconvénients<br />Déploiement et Configuration d’Hibernate<br />Mise en œuvre <br />Conclusion<br />
  3. 3. 3<br />Qu’est-ce que Hibernate ?<br />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.<br />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.<br />Hibernate apporte une solution aux problèmes d&apos;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.<br />
  4. 4. 4<br />Historique<br />Hibernate a été développé par un groupe de développeurs Java dirigés par Gavin King.<br />L&apos;entreprise JBoss (maintenant une division de Red Hat) a embauché les développeurs principaux d&apos;Hibernate et a travaillé avec eux afin de maintenir et développer le produit. <br />
  5. 5. 5<br />Architecture<br />Ce type de technologie peut être appelé framework de mapping objet-relationnel ou de persistance objet des données. <br />La couche d&apos;accès aux données.<br />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&apos;où mapping objet-relationnel.<br />
  6. 6. 6<br />Schéma de fonctionnement<br />
  7. 7. 7<br />Avantages<br />Gain du temps si on utilise des outils pour générer automatiquement la base de données et le code.<br /> Les objets métiers sont plus faciles à manipuler.<br /> Peu de dépendance envers une base de données précise. <br />
  8. 8. 8<br />Inconvénients<br /> Nécessite d&apos;apprendre à l&apos;utiliser (son utilisation n’est pas fondamentale)<br /> Tous les problèmes ne sont pas résolus car Hibernate est une technologie jeune<br />
  9. 9. 9<br />Déploiement d’Hibernate<br /> Téléchargez et installez J2SE 1.4 SDK. <br /> Téléchargez et installez Eclipse<br /> Télécharger Hibernate : &quot;http://hibernatesynch.sourceforge.net/&quot; <br /> Ouvrir Eclipse et importer le dossier contenant Hibernate<br />
  10. 10. 10<br />Configuration d’Hibernate<br />&lt;session-factory<br />&lt;propertyname=&quot;hibernate.dialect&quot;&gt;<br />org.hibernate.dialect.PostgreSQLDialect&lt;/property&gt;<br />&lt;property name=&quot;hibernate.connection.driver_class&quot;&gt;<br />org.postgresql.Driver&lt;/property&gt;<br />&lt;propertyname=&quot;hibernate.connection.url&quot;&gt;<br />jdbc:postgresql://localhost/e-commerce&lt;/property&gt;<br /> &lt;property name=&quot;hibernate.connection.username&quot;&gt;<br />postgres&lt;/property&gt;<br /> &lt;property name=&quot;hibernate.connection.password&quot;&gt;<br />administrateur&lt;/property&gt;<br />…<br /> La référence du SGBD utilisée<br /> Informations de connexion (Driver JDBC, url de connexion, login, mot de passe)<br /> Le mapping entre le modèle de classes et la base de données<br />
  11. 11. 11<br />Mise en œuvre d’Hibernate (1)<br />Définition des classes entités<br />package hello;<br />public class Message {<br />private Long id;<br />private String text;<br />private Message nextMessage;<br />private Message() {}<br />public Message(String text) {<br /> this.text = text;<br /> }<br />/* getters, setters */<br />}<br />
  12. 12. 12<br />Mise en œuvre d’Hibernate (2)<br />create table Message (<br />id INT not null,<br />String text,<br />Message nextMessage,<br />…<br />primary key (id)<br />) <br />Mapping des entités dans la base de données<br />&lt;?xml version=&quot;1.0&quot;?&gt;<br />&lt;!DOCTYPE hibernate-mapping PUBLIC<br /> &quot;-//Hibernate/Hibernate Mapping DTD//EN&quot;<br /> &quot;http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd&quot;&gt;<br />&lt;hibernate-mapping&gt;<br /> &lt;class name=&quot;hello.Message“ table=&quot;MESSAGES&quot;&gt;<br /> &lt;id name=&quot;id“ column=&quot;MESSAGE_ID&quot;&gt;<br /> &lt;generator class=&quot;increment&quot;/&gt;<br /> &lt;/id&gt;<br /> &lt;property name=&quot;text“ column=&quot;MESSAGE_TEXT&quot;/&gt;<br /> &lt;many-to-one name=&quot;nextMessage“ cascade=&quot;all“ column=&quot;NEXT_MESSAGE_ID&quot;/&gt;<br /> &lt;/class&gt;<br />&lt;/hibernate-mapping&gt;<br />java net.sf.hibernate.tool.hbm2ddl.SchemaExport --text --format --output=ex2bis.ddl delimeter=x *.hbm.xml<br />
  13. 13. 13<br />Mise en œuvre d’Hibernate (3)<br />insert into MESSAGES (MESSAGE_ID, MESSAGE_TEXT, NEXT_MESSAGE_ID)<br />values (1, &apos;Hello World&apos;, null);<br />Update MESSAGES <br />Set MESSAGE_TEXT=&quot;Bonjour&quot;  where MESSAGE_ID=&quot;1&quot; ;<br />Manipulation des données via l’objet Hibernate Session<br />Session session = getSessionFactory().openSession();<br />Transaction tx = session.beginTransaction();<br />Message message = new Message(&quot;Hello World&quot;);<br />session.save(message);<br />message.setMESSAGE_TEXT(&quot;Bonjour&quot;);<br />tx.commit();<br />session.close();<br />
  14. 14. 14<br />Mise en œuvre d’Hibernate (4)<br />Requêtage<br />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&apos;Oracle<br />SQL<br />HQL est totalement orienté objet, comprenant des notions d&apos;héritage, de polymorphisme et d&apos;association.<br />HQL<br />C’est une API(ensemble de fonctionnalités) d&apos;interrogation par critères intuitive et extensible.<br />Criteria<br />
  15. 15. 15<br />Conclusion<br /> Optimisation du temps de développement du programmeur. <br /> Des applications plus homogènes<br /> Des applications facilement migrables aussi (pensez que pour changer de base de données, il suffit juste de toucher à hibernate.cfg.xml)<br /> Technologie prometteuse (Sortie d’une version NHIBERNATE compatible avec DOT NET)<br />
  16. 16. 16<br />Netographie<br />http://fr.wikipedia.org<br />http://www.hibernate.org<br />http://developpez.com/tutoriel/java/eclipse/hibernate<br />
  17. 17. 17<br />

×