La lecture en ligne est gratuite
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
Télécharger Lire

cours-ORM-JPA-09

De
19 pages
Cedric Dumoulin - IPINT Qualité et Tests unitaires Qualité et Tests unitaires DESS IPINT - 2005/2006 - Cours TA1 20/10/2009Solutions pour le niveau de persistanceIntroduction aux ORM et à JPA Cedric DumoulinIPINTCedric.dumoulin@lifl.frPlan§ Problématique§ slides 08§ slides grim sur les solutions§ Les mapping objets – relationnel§ slides grim§ JPA§ slides grim tres bien, mais tres long !§ attention, c’est fait dans EJB 3 L2Bonnes pratiques du développement à base de composants 1Cedric Dumoulin - IPINT Cedric Dumoulin - IPINT Qualité et Tests unitaires Qualité et Tests unitaires DESS IPINT - 2005/2006 - Cours TA1 20/10/2009Bibliographie§ Master the New Persistence Paradigm with JPA§ http://www.devx.com/Java/Article/33650/0§ Persistence Pays Offs: Advanced Mapping with JPA§ http://www.devx.com/Java/Article/33906§ ORM§ http://deptinfo.unice.fr/~grin/mescours/minfo/modpersobj/supports/mappingOR6.pdf§ http:///~grin/mescours/minfo//supports/TypesApplication6.pdf§ JPA§ http://deptinfo.unice.fr/~grin/mescours/minfo/bdavancees/supports/jpa1-6.pdf§ http:///~grin/mescours/minfo/modpersobj/supports/jpa2-6.pdf 3Plan§ Le niveau de persistance;§ Les solutions de niveau de persistance;§ Développement avec hibernate;§ Langage de requêtes;4Bonnes pratiques du développement à base de composants 2Cedric Dumoulin - IPINT Cedric Dumoulin - IPINT Qualité et Tests unitaires Qualité et Tests unitaires DESS IPINT - 2005/2006 - Cours TA1 20/10/2009Le ...
Voir plus Voir moins
Solutions pour le niveau de persistance Introduction aux ORM et à JPA
Cedric Dumoulin IPINT
Cedric.dumoulin@lifl.fr
Plan
§ Problématique § slides 08 § slides grim sur les solutions § Les mapping objets  relationnel § slides grim § JPA § slides grim tres bien, mais tres long ! § attention, cest fait dans EJB 3 L
2
Bibliographie
§ Master the New Persistence Paradigm with JPA § http://www.devx.com/Java/Article/33650/0 § Persistence Pays Offs: Advanced Mapping with JPA § http://www.devx.com/Java/Article/33906 § ORM § http://deptinfo.unice.fr/~grin/mescours /minfo/modpersobj/supp orts/mappingOR6.pdf § http://deptinfo.unice.fr/~grin/mescours /minfo/modpersobj/supp orts/TypesApplication6.pdf § JPA § http://deptinfo.unice.fr/~grin/mescours /minfo/bdavancees/supp orts/jpa1-6.pdf § http://deptinfo.unice.fr/~grin/mescours /minfo/modpersobj/supp orts/jpa2-6.pdf
Plan
§ Le niveau de persistance; § Les solutions de niveau de persistance; § Développement avec hibernate; § Langage de requêtes;
3
4
Le niveau de persistance
§ Coût élevé du développement de la gestion de la persistance des données; § À l'exécution, les opérations d'accès au niveau de persistance sont les plus coûteuses en terme de performance; § Problématique actuelle : § Le développement objet domine aujourd'hui en entreprise; § La majeure partie des données critiques pour l'activité d'une organisation est entreposée dans des systèmes de gestion de bases de données relationnelles (SGBD/RDMBS); § Pour combler ce vide, il est primordial d'utiliser des outils de gestion de la persistance qui offre une adaptation objet-relationnel (O-R mapping) et qui génère le code pour les objets du domaine de l'application ;
Solutions maison pour le niveau de persistance
§ Sérialisation Java "Do it yourself!" § Moyen peu coûteux de rendre persistant une instance de classe Java; § Dépend de la version de la classe et du compilateur Java; § Non accessible à distance, non portable; § Pas de niveau transactionnel, pas de niveau d'intégrité. § JDBC (Java Database Connectivity) "Do it yourself!" § Pont standard de bas niveau pour communiquer avec un SGBD relationnel en SQL; § Compétence reconnue en entreprise, utilisé pour le meilleur et pour le pire par de nombreux développeurs Java; § Amélioration possible en utilisant le pattern Data Access Object (DAO); § Trop coûteux en temps de développement; § codes et objets difficiles à maintenir.
5
6
Inconvénients des solutions maison
§ r P e r la o t b io nn m el e n o é r c g e a s nisation c n o e o l : érLa'atidoanp teanttiroen  doebujxe t-site une p x ldp'aoodpmmualiianntiiesotsrn adsti isdotionnn ctdt les's e: x blpeae srdetéiss vede leso 'dpeopenprnmiémeenest   rdoealbnajstei tod enetnu exl les. rs et adDdéapnmasi rntdiesetsmr aegtnretausnr dsd ie(fsfD éorregn)atsan ipaspauatxir otpinreisno, nridetéénvst e àld oifdpfeépsre euntes; BA
§ Taille du co u d x e   d : oUnnneé eést urdeep r(éR.B. Websbqer')à  i4n0dique % du cqoudee l 'taoctcaèl sd 'aune application dasnesn ltees  jsuystuèmes des entrepri x anpépcleicssataiisfr eevs a.a rLiue e sste onectrkpeae grdteess  ecsetinmtaeinnetec sqh eueretc  ldhaee ts  da'imlulielnl i deorubs j cedote d e et à la r lignes !
Inconvénients des solutions maison
§ d Pi e è s t o re bj  e q t u s a d li a t n é s   : uLn'eé cbriatsuer ed de ed coondneé epso eurs ts caouvmeprl el'xéet aet t source d'erreur fréquentes (mais non moins classiques);
§ Peu réutilisable : Une solution maison est rarement de l'entr . Caphpalqicuaeb lper oajuext   aruéitrnevse natpep lliac artoiuoen set entraînee pdriesse nce ddéévpeelnospepse imnuetnilte es,t  lree dteosntd; antes pour la coption, le 
t des informatio rrive u'une § s C o l l o u i t s io o n n  n m e ai m so e n n crée des "silos" de n d s o: nInl éaes danqs une  organisation entravant la libre circulation des ifnofnocrmations entre les départements et les unités tionnelles;
7
8
Plan
§ Le niveau de persistance; § Les solutions de niveau de persistance; § Développement avec hibernate § Langage de requêtes;
Les outils de persistance
§ Une solution idéale pour l'accès aux données libère les développeurs d'écrire du code bas niveau et permet de d'écrire des modèlnense ds' opbejreftosr mcoamncpelexes touet  vean bilité conservant de bo s et un ria d échelle. Comment ? § En simplifiant la conception du modèle de données et l'adaptation objet-relationnel avec des outils automatiques; it § fElen xigbélne éqrauin tr éudnu int ilveesa cuo dûet s plieérss isatua tnecset  deet  agrua dnédbe oqguaagle;é , § dEen  icnatcéhger ant le code généré avec un systèmnec edse  egt eustnieo n intégrité dpeos udr oansnséureesr  sdaen sb oprnongersa pmemrfaotriomna additionnelle.
9
10
Un modèle objet complexe avec outil de mapping § Un outil de mapping ou un framework permet dautomatiser en partie la correspondance objet-relationnel et diminue beaucoup la quantité de code à écrire pour gérer la persistance
Outil de mapping
§ La correspondance objet-relationnel est décrite par des fichiers de configuration ou des annotations § La persistance est très simplifiée pour le développeur qui écrit le code objet § Les données de la base sont vues par lapplication à travers le modèle objet, et pas le modèle relationnel § Permet souvent de générer des classes objet à partir des tables dune BD, ou inversement
11
12
Désavantages
§ Difficiles à écrire soi-même car très complexes § Mais il existe de nombreux projets gratuits et open source § Il faut apprendre à sen servir (pas toujours simple ) § Pour les modèles objets très complexes (en particulier avec des structures arborescentes), le mapping objet-relationnel montre ses limites § (aller voir du côté des SGBD objets ?)
Hibernate
§ Avec Toplink, loutil de mapping le plus utilisé dans le monde Java § Utilise un gestionnaire de persistance, lintrospection et lenrichissement de code à lexécution pour récupérer les valeurs des propriétés des objets et gérer leur persistance § Les dernières versions sont conformes au standard JPA
13
14
Autres possibilités
§ JDO (Java Data Objects) est une autre API qui offre des possibilités semblables à JPA § Utilise lenrichissement de code pendant la phase de compilation
EJB (Entreprise Java Beans)
§ Spécification qui offre un Framework standard pour les applications Java dentreprise § Code fourni par J2EE, la version dentreprise de Java § Nécessite lutilisation dun serveur dapplications qui est un logiciel lourd (non fourni par J2EE) § Plutôt pour les grosses applications dentreprises
15
16
EJB 2 (Enterprise Java Bean)
§ Standard J2EE pour l'adaptation objet-relationnel sous la forme de composant bean d'entité;  § pDi'laoutéres types de composantsexistent (Beansession, bean t par message); § Expertise reconnue, utilisée par de nombreux professionnels; § Succès dû en partie au marketing de Sun;  coûteux § NMéaccreossmitee diuan)  cooun tgernaetuuirt  d('JEOJnBA,S, JBoss) (;Websphere, Weblogic, § Nécessite des descripteurs de déploiement propriétaires; § tDeécchenpiqtiuoen  (ehne ucree quusie cmoenncte, rcnee  lne'ess tp eprafso rlem acnasc edse  eJt Olen sAuS)p;port § Deémiafincdaeti ounn  Jt2eEmEp as vda'antp pdree ndtéisvsealogpep neor;n négligeable de la sp c § Ce qulie exixpél iuqtuilies eqnute  JleDsB Cd épvoeluor plpe epuirrse ;découragés par cette comp t
JPA
§ Spécification standard pour la persistance des objets Java § Fait partie de la spécification EJB 3 , § framework pour les applications dentreprise § TopLink Essentials est limplémentation de référence de JPA § Utilise les annotations Java 1.5 § Simple dutilisation
17
18
§ Les mappings objets 
relationnel
Correspondance Objet - Relationnel
§ Ce cours explique les problèmes de base qui se posent quand on veut faire correspondre § les données contenues dans un modèle objet § avec les données contenues dans une base de données relationnelle
§ Copyright Richard Grin
19
20
§ § §
§
2 paradigmes
Les paradigmes objet et relationnel sont bien distincts Le paradigme objet est plus riche Par exemple, pas de notion dobjet, dhéritage ou dassociation dans le paradigme relationnel Dès quun modèle objet est complexe (de lhéritage et beaucoup dassociations) il nest pas simple de faire correspondre des objets et des tables relationnelles
21
22
Un pour Un
Permettre à tous d'accéder à la lecture
Pour chaque accès à la bibliothèque, YouScribe donne un accès à une personne dans le besoin