Hibernate 3.0 ajoute la persistance des documents XML – fichiers d’exemple
02/05/2005
Le test suivant se propose de tester la nouvelle fonctionnalité de mapping XML d’Hibernate. Voir l’article associé, pour plus d’informations.
Le projet se compose de plusieurs répertoires :
cfg
: fichiers de configuration d’Hibernate, de propriétés (hibernate et log) et script pour la création de la table de la base de donnéesres
: fichier XML de données, qui seront insérées dans la basesrc
: sources Java du testbuild.xml
: fichier Ant de compilation, exécution du test
Initialisation de la base
La base de données utilisée pour ce test, HSQLdb, est 100% Java et très simple à installer. Après l’avoir téléchargé et décrompressée dans un répertoire, il suffit de lancer le serveur et de provisionner la table. Pour plus d’informations, consulter la note à ce sujet.
java -cp lib/hsqldb.jar org.hsqldb.Server
Une fois le serveur démarré, l’insertion se fait à l’aide du DatabaseManager
, par lecture et exécution du script SQL
(create_todo.sql) suivant :
DROP TABLE TODO_TASK if EXISTS;
CREATE TABLE TODO_TASK (
TODOID INTEGER NOT NULL PRIMARY KEY,
SUMMARY VARCHAR(45) NOT NULL ,
DESCRIPTION VARCHAR(45),
PRIORITY INTEGER,
DONE TIMESTAMP);
INSERT INTO TODO_TASK VALUES(001,'faire le cafe',
'Prendre 7 volumes deau et 7 volumes de cafe', 1, CURRENT_DATE);
Ce script se situe dans le répertoire cfg
du projet.
Lancement du test
Le test se lance grâce au script Ant. Il compile les classes et lance le programme Java MappingXML qui réalise 3 opérations :
- modification de données via la manipulation d’un POJO (scénario classique)
- lecture d’un fichier XML et insertion de ses données dans la base en utilisant les facilités d’Hibernate
- consultation de la base, et génération d’un fichier de résultat au format XML
> ant
...
[java] <?xml version="1.0" encoding="UTF-8"?>
[java] <todolist>
[java] <todo id="1" priority="1">
[java] <sum>faire le cafe</sum>
[java] <descr>Prendre 7 volumes deau et 7 volumes de cafe</descr>
[java] <doneDate>2005-05-02 00:00:00</doneDate>
[java] </todo>
[java] <todo id="2" priority="2">
[java] <sum>Faire une pause</sum>
[java] <descr>Allez a la cafet, prendre un cafe avec Bob</descr>
[java] </todo>
[java] <todo id="4" priority="2">
[java] <sum>installer eclipse</sum>
[java] <descr>une nouvelle version est disponible</descr>
[java] </todo>
[java] <todo id="5" priority="1">
[java] <sum>redemarrer le serveur</sum>
[java] <descr>une mise a jour du serveur tartenpion necessite un redemarrage</descr>
[java] </todo>
[java] <todo id="6" priority="3">
[java] <sum>documentation du product</sum>
[java] <descr>faire une documentation complete de notre super produit</descr>
[java] </todo>
[java] </todolist>
all:
BUILD SUCCESSFUL
Le bean Java utilisé est bean.TodoTask
et son fichier de correspondance Hibernate, Todo.hbm.xml
, se trouve dans le répertoire cfg
.
Fichiers
En résumé, voici les fichiers utilisés pour ce test :
| build.xml | +—- cfg | create_todo.sql | hibernate.properties | log.properties | Todo.hbm.xml | +—- res | todo-ex.xml | \—- src | MappingXML.java | \—- bean TodoTask.java