Session : Juillet 2009Intervenant : Hubert KADIMAAuditeur: Manuel RAMOS
SOMMAIRESOMMAIRE 1- Qu’est-ce la persistance ? 2 – Histoire d’Hibernate 3 - Pourquoi utiliserHibernate ? 4 – Architect...
Qu’est-ce que la persistance ?Qu’est-ce que la persistance ? La persistance est le concept fondamental dudéveloppement d’...
Qu’est-ce que la persistance ?Qu’est-ce que la persistance ?
Qu’est-ce que la persistance ?Qu’est-ce que la persistance ?
Qu’est-ce que la persistance ?Qu’est-ce que la persistance ?Il faut absolument distinguer deux types depersistance: Persi...
Histoire d’HibernateHistoire d’Hibernate Les premières versions datent de novembre2001, se généralisant dans l’industrie ...
Pourquoi utiliserHibernate ?Pourquoi utiliserHibernate ? La programmation de la couche d’accès aux données avecSQL/JDBC s...
Pourquoi utiliserHibernate ?Pourquoi utiliserHibernate ? Les classes de l’API JDBC:CLASSE ROLEDriverManager Charge et con...
Pourquoi utiliserHibernate ?Pourquoi utiliserHibernate ? Tous les SGBD connus sont supportés S’intègre parfaitement dans...
Architecture HibernateArchitecture HibernateSource: Training guide1 2 3 4 5 6
Bibliothèques HibernateBibliothèques Hibernate
Architecture HibernateArchitecture HibernateSession-factory
Configuration de baseConfiguration de base Environnement nonmanagé (conteneur deservlets)
Configuration de baseConfiguration de base
Configuration de baseConfiguration de base Les étapes pour démarrer Hibernate:1. Télécharger et décompresser le pilote JD...
Configuration de baseConfiguration de base Le code suivant démarre Hibernate:
Configuration de baseConfiguration de base Environnement managé(avec un serveurd’applicationJ2EE)
Configuration avancéeConfiguration avancée Les différentes propriétés sont: Fichier de dépannagehibernate.show.sql Fich...
Configuration avancéeConfiguration avancéeHibernate.cfg.xml
Déclaration de la classe persistanteDéclaration de la classe persistante Doit obéir à unecondition : elle doit êtreun POJ...
Le fichierde mappingLe fichierde mapping Décrit comment se ferala persistance desobjets d’une classe Se place dans le mê...
Le fichierde configurationLe fichierde configuration Le placer dans lerépertoire source del’application, à la racinede la...
Etats d’un objetEtats d’un objet
Les associationsLes associations Dans le modèle objet:Références d’objetsDirectionnelles Dans le modèlerelationnel:Colon...
Les associations 1 to 1Les associations 1 to 1 Bidirectionnellessimples:
Les associations 1 to N /N to 1Les associations 1 to N /N to 1
Les associations avec table de jointureLes associations avec table de jointure
Relation d’héritageRelation d’héritage
Relation d’héritageRelation d’héritage
Manipulation des donnéesLes données sont manipulées à partir dunesession créée à partir de la sessionFactory: Chargement ...
Manipulation des données Exemple de code:
Manipulation des données INSERT INTO PLAYERVALUES(5,Henry LouisAaron,HammerinHank,1934-02-05,Mobile,AL,44)
Manipulation des données
Les types de donnéesLes types de données
Avantages Inconvénients Gain de 30 à 40% du nombre delignes de certains projets Un plus grand nombred’optimisations plus...
Hibernate face à ses concurrentsHibernate face à ses concurrents Toplink (WebGain puis Oracle) OJB (Apache Object/relati...
L’avenird’HibernateL’avenird’Hibernate La recherche plein texte Sera utilisé dans les plus grands projets Java . dutili...
L’avenird’HibernateL’avenird’Hibernate
Liste des utilisateurs HibernateListe des utilisateurs Hibernate
Démonstration 1/23
Démonstration 2/23
Démonstration 3/23
Démonstration 4/23
Démonstration 5/23 Le développement sera effectué sur laconfiguration suivante: La plateforme Java 5 Le serveurde BDMyS...
Démonstration 6/23
Démonstration 7/23
Démonstration 8/23 Implémentation: Un nouveau projet Eclipse, nommé «PetStore Hibernate », est créé. Un nouveau schéma ...
Démonstration 9/23
Démonstration 10/23 Le fichierde configuration«hibernate.cfg.xml »contient: Les paramètres deconnexion à la source dedon...
Démonstration 11/23
Démonstration 10/23 Description de laméthode :
Démonstration 10/23 Description de la méthode:
Démonstration 10/23 Dernière méthode:
Démonstration 10/23 Ecriture de la requêteHQL :
Démonstration 10/23 La requête produite,pourles paramètres «Query »= «Cats MaleWhite »et «l »=Local.UK, est lasuivante :
Démonstration 10/23 Implémentation de la classe persistante «HibItem»:
Démonstration 10/23
Démonstration 10/23 Implémentation de laclasse persistante «HibItemDetail »:
Démonstration 10/23 Implémentation de laclasse utilitaire:
Démonstration 10/23 Implémentation de laclasse de conversion:
Démonstration 10/23 Création du schéma debase de données:
Démonstration 10/23 Persistance des autres classes:
BibliographieBibliographie Documentation et bibliothèques: http://www.hibernate.org/ Communauté d’utilisateurs Java à Pa...
Les meilleures pratiquesLes meilleures pratiques Déclarez des propriétés didentifiants dans lesclasses persistantes Ne g...
Question/Réponse ?Question/Réponse ? Quelles sont les plug-ins indispensables pourconcevoir un projetJava? A quoi sert l...
Question/Réponse ?Question/Réponse ? Où installer les classesdu package HibernateCore? L’affichage desrequêtes réalisées...
Prochain SlideShare
Chargement dans…5
×

Presentation hibernate nfe103

1 033 vues

Publié le

Publié dans : Technologie
  • Soyez le premier à commenter

Presentation hibernate nfe103

  1. 1. Session : Juillet 2009Intervenant : Hubert KADIMAAuditeur: Manuel RAMOS
  2. 2. SOMMAIRESOMMAIRE 1- Qu’est-ce la persistance ? 2 – Histoire d’Hibernate 3 - Pourquoi utiliserHibernate ? 4 – Architecture Hibernate(Interfaces, bibliothèques) 5 – Configuration (de base etavancée) 6 - Avantages/Inconvénients 7 - Hibernate face à sesconcurrents 8 - L’avenird’Hibernate 9 - Démonstration 10 - Bibliographie 11 – Questions et réponses ?
  3. 3. Qu’est-ce que la persistance ?Qu’est-ce que la persistance ? La persistance est le concept fondamental dudéveloppement d’applications C’est la couche plus basse d’une architectureapplicative
  4. 4. Qu’est-ce que la persistance ?Qu’est-ce que la persistance ?
  5. 5. Qu’est-ce que la persistance ?Qu’est-ce que la persistance ?
  6. 6. Qu’est-ce que la persistance ?Qu’est-ce que la persistance ?Il faut absolument distinguer deux types depersistance: Persistance d’objet Le modèle relationnel
  7. 7. Histoire d’HibernateHistoire d’Hibernate Les premières versions datent de novembre2001, se généralisant dans l’industrie Java 19/01/2002: Annonce de sa création par GavinKing sur le site theserverside.com Sortie de l’ouvrage ‘Hibernate in Action’ en2003, écrit par Christian Bauer Hibernate joint l’équipe JBoss.org en 2003
  8. 8. Pourquoi utiliserHibernate ?Pourquoi utiliserHibernate ? La programmation de la couche d’accès aux données avecSQL/JDBC s’est révélée fastidieuse et trop longue Lintérêt est de pouvoir changer de base de données ennayant besoin de ne modifier que la couche daccès auxdonnées Développer des classes persistantes en accord avec lescaractéristiques du langage objet : association, héritage,polymorphisme, composition et les collections Java Joindre l’univers de l’objet et du relationnel à travers lemapping objet/relationnel (ORM)
  9. 9. Pourquoi utiliserHibernate ?Pourquoi utiliserHibernate ? Les classes de l’API JDBC:CLASSE ROLEDriverManager Charge et configure le driver de la BD.Connection Réalise la connexion et lauthentification à laBD.PreparedStatement Contient la requête SQL et la transmet à laBD.ResultSet Permet de parcourir les informationsretournées par la BD dans le cas dunesélection de données
  10. 10. Pourquoi utiliserHibernate ?Pourquoi utiliserHibernate ? Tous les SGBD connus sont supportés S’intègre parfaitement dans les plus populairesserveurs d’applications J2EE, ou lesconteneurs Web tel que Tomcat Open source et simple à utiliser en définissantles objets persistés dans un fichier de mappingXML modifiable Remplace les accès à la base de données pardes appels à des méthodes objet de hautniveau.
  11. 11. Architecture HibernateArchitecture HibernateSource: Training guide1 2 3 4 5 6
  12. 12. Bibliothèques HibernateBibliothèques Hibernate
  13. 13. Architecture HibernateArchitecture HibernateSession-factory
  14. 14. Configuration de baseConfiguration de base Environnement nonmanagé (conteneur deservlets)
  15. 15. Configuration de baseConfiguration de base
  16. 16. Configuration de baseConfiguration de base Les étapes pour démarrer Hibernate:1. Télécharger et décompresser le pilote JDBC2. Import des librairies nécessaires à lutilisationdhibernate3. Choisir le pool de connexions JDBC4. Faire connaître ces propriétés à Configuration5. Créer une instance de configuration et charger lesfichiers de mapping XML en utilisant addRessource()6. Générez une SessionFactory à partir de laConfiguration en appelant buildSessionFactory().
  17. 17. Configuration de baseConfiguration de base Le code suivant démarre Hibernate:
  18. 18. Configuration de baseConfiguration de base Environnement managé(avec un serveurd’applicationJ2EE)
  19. 19. Configuration avancéeConfiguration avancée Les différentes propriétés sont: Fichier de dépannagehibernate.show.sql Fichier de propriétéshibernate.properties (voirslide précédent) Fichier de configurationhibernate.cfg.xml
  20. 20. Configuration avancéeConfiguration avancéeHibernate.cfg.xml
  21. 21. Déclaration de la classe persistanteDéclaration de la classe persistante Doit obéir à unecondition : elle doit êtreun POJO (PlainOrdinary Java Object) Implémenter unconstructeur sansargument Fournir une propriétéd’identifiant unique Elle est mappée dans lefichier comme extensionMessage. Hbm.xml
  22. 22. Le fichierde mappingLe fichierde mapping Décrit comment se ferala persistance desobjets d’une classe Se place dans le mêmerépertoire que la classeet se nommeclasse.hbm.xmlStratégie degénérationD’identifiant
  23. 23. Le fichierde configurationLe fichierde configuration Le placer dans lerépertoire source del’application, à la racinede la classe PATH Hibernate rechercheautomatiquement lefichier hibernate.cfg.xmlau démarrage.
  24. 24. Etats d’un objetEtats d’un objet
  25. 25. Les associationsLes associations Dans le modèle objet:Références d’objetsDirectionnelles Dans le modèlerelationnel:Colonne de cléétrangèrePas directionnelles
  26. 26. Les associations 1 to 1Les associations 1 to 1 Bidirectionnellessimples:
  27. 27. Les associations 1 to N /N to 1Les associations 1 to N /N to 1
  28. 28. Les associations avec table de jointureLes associations avec table de jointure
  29. 29. Relation d’héritageRelation d’héritage
  30. 30. Relation d’héritageRelation d’héritage
  31. 31. Manipulation des donnéesLes données sont manipulées à partir dunesession créée à partir de la sessionFactory: Chargement des données : session.load() Sauvegarde des données : session.save() Chargement des données non sûres :session.get() Suppression des données : session.delete() Mise à jour des données : session.update()
  32. 32. Manipulation des données Exemple de code:
  33. 33. Manipulation des données INSERT INTO PLAYERVALUES(5,Henry LouisAaron,HammerinHank,1934-02-05,Mobile,AL,44)
  34. 34. Manipulation des données
  35. 35. Les types de donnéesLes types de données
  36. 36. Avantages Inconvénients Gain de 30 à 40% du nombre delignes de certains projets Un plus grand nombred’optimisations plus faciles àmener avec cet ORM automatisé. Améliore la portabilité du codepour des changements de SGBD. Mise en valeur de la logiquemétier. Le plus populaire des frameworksORM Une couche de persistance,quelle quelle soit, a un coût. C’est une question de choixdarchitecture et de besoin Les procédures stockées sontpeu portable et peu flexible.
  37. 37. Hibernate face à ses concurrentsHibernate face à ses concurrents Toplink (WebGain puis Oracle) OJB (Apache Object/relational bridge) Castor (EXOLAB) Cocobase (Thought inc) JDO (Datanucleus) JPOX 1.2
  38. 38. L’avenird’HibernateL’avenird’Hibernate La recherche plein texte Sera utilisé dans les plus grands projets Java . dutiliser conjointement les EJB3 et Hibernate
  39. 39. L’avenird’HibernateL’avenird’Hibernate
  40. 40. Liste des utilisateurs HibernateListe des utilisateurs Hibernate
  41. 41. Démonstration 1/23
  42. 42. Démonstration 2/23
  43. 43. Démonstration 3/23
  44. 44. Démonstration 4/23
  45. 45. Démonstration 5/23 Le développement sera effectué sur laconfiguration suivante: La plateforme Java 5 Le serveurde BDMySQL 5.0 L’EDI Eclipse 3.2
  46. 46. Démonstration 6/23
  47. 47. Démonstration 7/23
  48. 48. Démonstration 8/23 Implémentation: Un nouveau projet Eclipse, nommé «PetStore Hibernate », est créé. Un nouveau schéma MySQL, nommé «hibernate », est créé. limplémentation de la couche depersistance contient un nombre réduit declasses.
  49. 49. Démonstration 9/23
  50. 50. Démonstration 10/23 Le fichierde configuration«hibernate.cfg.xml »contient: Les paramètres deconnexion à la source dedonnées La liste des fichiers demapping des classespersistantes Le paramètre d’activationdes traces SQL La configuration du cached’objets
  51. 51. Démonstration 11/23
  52. 52. Démonstration 10/23 Description de laméthode :
  53. 53. Démonstration 10/23 Description de la méthode:
  54. 54. Démonstration 10/23 Dernière méthode:
  55. 55. Démonstration 10/23 Ecriture de la requêteHQL :
  56. 56. Démonstration 10/23 La requête produite,pourles paramètres «Query »= «Cats MaleWhite »et «l »=Local.UK, est lasuivante :
  57. 57. Démonstration 10/23 Implémentation de la classe persistante «HibItem»:
  58. 58. Démonstration 10/23
  59. 59. Démonstration 10/23 Implémentation de laclasse persistante «HibItemDetail »:
  60. 60. Démonstration 10/23 Implémentation de laclasse utilitaire:
  61. 61. Démonstration 10/23 Implémentation de laclasse de conversion:
  62. 62. Démonstration 10/23 Création du schéma debase de données:
  63. 63. Démonstration 10/23 Persistance des autres classes:
  64. 64. BibliographieBibliographie Documentation et bibliothèques: http://www.hibernate.org/ Communauté d’utilisateurs Java à Paris:http://www.parisjug.org/ Université Marne la Vallée:http://www-igm.univ-mlv.fr/~dr/XPOSE2004/msamson/ «Hibernate », Christian Bauer, Gavin King, CampusPress(Open Source Reference), 07/2005 Application démo de Hibernate:http://caveatemptor.hibernate.org
  65. 65. Les meilleures pratiquesLes meilleures pratiques Déclarez des propriétés didentifiants dans lesclasses persistantes Ne gérez pas vous même les connexionsJDBC Préférez les associations bidirectionnelles Placez chaque mapping de classe dans sonpropre fichier
  66. 66. Question/Réponse ?Question/Réponse ? Quelles sont les plug-ins indispensables pourconcevoir un projetJava? A quoi sert la classeconfiguration? Quel est l’utilité del’interface Query? Le package HibernateCore associé au plug-inHibernate synchronizer. Regroupe les infos demapping et d’accès auxBase de données. Pour récupérerlesenregistrements d’unebase répondant à unerequête HQL
  67. 67. Question/Réponse ?Question/Réponse ? Où installer les classesdu package HibernateCore? L’affichage desrequêtes réalisées parHibernate peuvent êtreactivés dans le fichierde configuration? Dans le sous répertoireWEB-INF/lib del’application web. Modifier simplement lavaleur de l’attribut del’élément <property>dont l’attribut name vauthibernate.show_sql.

×