3
R. Grin JDBC page 13
JDO
JDO est un projet plus ambitieux que SQLJ
puisqu’il souhaite rendre en grande partie
transparente la persistance des objets Java
Le code Java écrit par les développeurs ne
s’occupe pas de la persistance
JDO nécessite une infrastructure complexe, à la
compilation, et durant l’exécution, fournie par une
implémentation JDO
R. Grin JDBC page 14
Transparence de la persistance
Les classes qui pourront avoir des instances
persistantes sont dites « capables de
persistantes »
Le principe de base de JDO est que le
programmeur n’écrit aucun code pour gérer la
persistance
Le code source d’une classe est exactement le
même, que la classe soit capable de persistance
ou non
R. Grin JDBC page 15
Rendre une instance persistante
Pour rendre une instance persistante, il suffit
d’utiliser la méthode makePersistent (voir code
plus loin)
En fait la plupart des instances sont rendues
persistantes automatiquement, « par référence »
(by reachability) :
si on rend persistant une instance de Employe,
dont la classe possède un champ capable de
persistance de type Adresse, son adresse
devient automatiquement persistante
R. Grin JDBC page 16
Portabilité
La persistance peut s’effectuer sur un support
logique quelconque : SGBD relationnel ou objet, ou
même fichiers ordinaires
Il suffit d’avoir une implémentation JDO (qui joue le rôle
d’un driver JDBC) adaptée à ce support
La persistance ne tient compte que de la description
logique des classes persistantes (méta-données),
fournie par un fichier XML écrit par le développeur
Il est ainsi très facile de changer de support
R. Grin JDBC page 17
Enrichissement JDO
Les classes capables de persistance sont
indiquées dans un fichier XML de configuration
Elles doivent être « enrichies » par un programme
spécial, fourni par l'implémentation de JDO et
adapté à un SGBD cible
Cet enrichissement ajoute les méthodes qui
permettront à l’implémentation JDO de gérer la
persistance des instances pendant l’exécution
R. Grin JDBC page 18
Exemple de code avec JDO
Ce code va ajouter une adresse dans une base de
donnée
La classe Adresse n’est pas donnée car elle est
semblable à une classe Java normale
Le schéma de la base doit comporter une table
dont la structure correspond aux champs
persistants de la classe Adresse