Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
enseignement:tp:sw:donnees:2014 [2014/09/11 14:39]
ecoquery créée
enseignement:tp:sw:donnees:2014 [2014/09/23 07:19] (Version actuelle)
ecoquery [Travail demandé]
Ligne 29: Ligne 29:
 ===== Mise en place ===== ===== Mise en place =====
  
-Télécharger le projet maven suivant: {{:enseignement:tp:sw:donnees:inf2018m-2014-base.zip|}}+Télécharger le projet maven suivant: {{:enseignement:tp:sw:donnees:inf2018m-2014-base.zip|}}.
  
 Alternativement, il est possible de cloner le dépôt de l'énoncé: https://forge.univ-lyon1.fr/hg/inf2018m-2014-base . Alternativement, il est possible de cloner le dépôt de l'énoncé: https://forge.univ-lyon1.fr/hg/inf2018m-2014-base .
Ligne 35: Ligne 35:
 Ce projet contient: Ce projet contient:
   * un fichier ''pom.xml'' préconfiguré avec les dépendances vers junit, hibernate et [[http://www.h2database.com|h2]] pour les tests   * un fichier ''pom.xml'' préconfiguré avec les dépendances vers junit, hibernate et [[http://www.h2database.com|h2]] pour les tests
-  * un fichier ''src/main/resources/setup-h2.sql'' qui contient le code SQL pour créer des tables dans postgresql+  * un fichier ''src/main/resources/setup-h2.sql'' qui contient le code SQL pour créer des tables dans H2
   * un script ''build-h2.sh'', dont il faut éventuellement éditer la variable ''H2JAR'' pour initialiser une base H2 dans le répertoire target((je suis preneur d'un éventuel ''.bat'' similaire pôur Windows))   * un script ''build-h2.sh'', dont il faut éventuellement éditer la variable ''H2JAR'' pour initialiser une base H2 dans le répertoire target((je suis preneur d'un éventuel ''.bat'' similaire pôur Windows))
   * un fichier XML Schema ''src/main/resources/film.xsd''   * un fichier XML Schema ''src/main/resources/film.xsd''
   * des classes dans les packages ''sw.film.model'' et ''sw.film.model.dao'' situés dans ''src/main/java''   * des classes dans les packages ''sw.film.model'' et ''sw.film.model.dao'' situés dans ''src/main/java''
  
-<note tip>La commande ''java -cp la/ou/est/h2.jar org.h2.tools.Consolepermet de lancer une console Web pour regarder le contenu d'une base H2 et exécuter des sciprts (cf )</note>+<note tip>La commande ''java -cp la/ou/est/h2.jar org.h2.tools.Console'' permet de lancer une console Web pour regarder le contenu d'une base H2 et exécuter des sciprts (cf [[http://www.h2database.com/html/tutorial.html#tutorial_starting_h2_console|tutoriel h2]])</note>
  
 Le zip est une archive d'un dépôt Mercurial. Créer un projet sur la [[http://forge.univ-lyon1.fr|forge]] que vous utiliserez pour versionner votre TP. Pousser le dépôt local ((i.e. le projet maven)) vers votre projet forge. N'oubliez pas de partager votre projet avec votre binôme (vos trinômes). Le zip est une archive d'un dépôt Mercurial. Créer un projet sur la [[http://forge.univ-lyon1.fr|forge]] que vous utiliserez pour versionner votre TP. Pousser le dépôt local ((i.e. le projet maven)) vers votre projet forge. N'oubliez pas de partager votre projet avec votre binôme (vos trinômes).
Ligne 48: Ligne 48:
   - Comprendre les schémas SQL et XML   - Comprendre les schémas SQL et XML
   - Utiliser JPA (cf TP [[enseignement:tp:bd:tp-orm:2012|Mise en oeuvre de mappings Objet/Relationnels]]) pour annoter les classes du package ''sw.film.model'' (sauf ''FilmCollection'') de façon à pourvoir utiliser une base H2((typiquement celle créée par le script ''build-h2.sh'' décrit ci-dessus)) comme support de persistance.   - Utiliser JPA (cf TP [[enseignement:tp:bd:tp-orm:2012|Mise en oeuvre de mappings Objet/Relationnels]]) pour annoter les classes du package ''sw.film.model'' (sauf ''FilmCollection'') de façon à pourvoir utiliser une base H2((typiquement celle créée par le script ''build-h2.sh'' décrit ci-dessus)) comme support de persistance.
-  - Compléter les classes du package ''sw.film.model.dao'' en utilisant JPA.+  - Compléter les classes du package ''sw.film.model.dao.jpa'' en utilisant JPA.
   - Ecrire une classe de test unitaire pour vérifier le bon fonctionnement du mapping JPA.   - Ecrire une classe de test unitaire pour vérifier le bon fonctionnement du mapping JPA.
-  - Annoter les classes du package ''sw.film.model'' (y compris FilmCollection) avec JAXB pour pouvoir (dé)sérialiser des objets de ces classes au format XML. **Le format XML produit/lu devra être valide vis-à-vis du schéma XSD fourni.** +  - Annoter les classes du package ''sw.film.model'' (y compris FilmCollection) avec JAXB pour pouvoir (dé)sérialiser des objets de ces classes au format XML. Le format XML produit/lu devra être valide vis-à-vis du schéma XSD fourni. 
-  - Ecrire une classe de test unitaire pour vérifier le bon fonctionnement de la (dé)sérialisation avec JAXB, y compris le respect du schéma XSD. +  - Ecrire une((au moins)) classe de test unitaire pour vérifier le bon fonctionnement de la (dé)sérialisation avec JAXB, y compris le respect du schéma XSD. 
-<note warning>Attention, il est interdit de modifier les interfaces du package ''sw.film.itf'' et les classes qui implémentent des interfaces de ce package doivent continuer à le faire. Vous pouvez par contre ajouter à loisir des méthodes publiques supplémentaires dans les classes d'implémentation.</note> +<note warning>Attention, il est interdit de modifier les interfaces du package ''sw.film.model.dao'' et les classes qui implémentent des interfaces de ce package doivent continuer à le faire. Vous pouvez par contre ajouter à loisir des méthodes publiques supplémentaires dans les classes d'implémentation. Il est interdit de changer la signature des méthodes publiques des classes fournies.</note> 
-<note warning>De même, il est interdit de changer le schéma de la BDD ou le schéma XML</note>+<note warning>De même, il est interdit de changer le schéma de la BDD ou le schéma XML.</note>
  
 ===== Ressources ===== ===== Ressources =====
Ligne 66: Ligne 66:
   * [[http://download.oracle.com/javase/6/docs/api/|API Java 6]] -> package javax.xml.bind et sous-packages   * [[http://download.oracle.com/javase/6/docs/api/|API Java 6]] -> package javax.xml.bind et sous-packages
  
-Fichier ''persistence.xml'' à placer dans ''src/test/resources/META-INF'':+Fichier ''persistence.xml'' placé dans ''src/test/resources/META-INF'':
 <file xml persistence.xml> <file xml persistence.xml>
 <?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
Ligne 72: Ligne 72:
   <persistence-unit name="test" transaction-type="RESOURCE_LOCAL">   <persistence-unit name="test" transaction-type="RESOURCE_LOCAL">
     <provider>org.hibernate.ejb.HibernatePersistence</provider>     <provider>org.hibernate.ejb.HibernatePersistence</provider>
-    <class>...</class>+    <class>...</class> <!-- compléter ici avec les classes du mapping OR -->
     <properties>     <properties>
       <property name="hibernate.connection.driver_class" value="org.h2.Driver"/>       <property name="hibernate.connection.driver_class" value="org.h2.Driver"/>