.bat
similaire pôur WindowsL'objectif est de réviser / de prendre en main les APIs de persistance standard Java des objets vers le relationnel (JPA) et vers XML (JAXB).
Les binômes / trinômes pour ce TP sont à constituer de la manière suivante:
Le TP est à rendre pour 25/09/2014, 23h59. Saisir dans tomuss l'identifiant du projet forge de votre TP dans la colonne TP1_F
:
projects/
(resp. hg/
) dans l'url de la page du projet (resp. l'url mercurial)
Versionner un fichier README.txt
contenant les noms et numéros des étudiants du groupe (binôme ou trinôme) ainsi que tout commentaire à destination du correcteur du TP.
Télécharger le projet maven suivant: 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 .
Ce projet contient:
pom.xml
préconfiguré avec les dépendances vers junit, hibernate et h2 pour les testssrc/main/resources/setup-h2.sql
qui contient le code SQL pour créer des tables dans H2build-h2.sh
, dont il faut éventuellement éditer la variable H2JAR
pour initialiser une base H2 dans le répertoire target1)src/main/resources/film.xsd
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.Console
permet de lancer une console Web pour regarder le contenu d'une base H2 et exécuter des sciprts (cf tutoriel h2)</note>
Le zip est une archive d'un dépôt Mercurial. Créer un projet sur la forge que vous utiliserez pour versionner votre TP. Pousser le dépôt local 2) vers votre projet forge. N'oubliez pas de partager votre projet avec votre binôme (vos trinômes).
sw.film.model
(sauf FilmCollection
) de façon à pourvoir utiliser une base H23) comme support de persistance.sw.film.model.dao.jpa
en utilisant JPA.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.
<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>
Quelques liens utiles:
Fichier persistence.xml
placé dans src/test/resources/META-INF
:
<?xml version="1.0" encoding="UTF-8"?> <persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"> <persistence-unit name="test" transaction-type="RESOURCE_LOCAL"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <class>...</class> <!-- compléter ici avec les classes du mapping OR --> <properties> <property name="hibernate.connection.driver_class" value="org.h2.Driver"/> <property name="hibernate.connection.url" value="jdbc:h2:target/test-db"/> <property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/> <property name="hibernate.hbm2ddl.auto" value="validate"/> </properties> </persistence-unit> </persistence>
<note warning>Attention, le hibernate.hbm2ddl.auto
doit bien être à validate
sous peine de modifier le schema de la BDD.</note>