Avant de décrire la nécessité de l’ORM (object-relational mapping), je dois introduire un autre terme particulier : discordance d’impédance. La discordance d’impédance concerne l’épineux problème de l’intégration de données relationnelles à un langage orienté objet. En quelque sorte, il faut placer les valeurs d’enregistrements de la base de données dans
ORM (Object-Relational Mapping)
des objets Java puis mettre à jour la base de données pour refléter les modifications que l’utilisateur a apportées au contenu de ces objets. En 1999, sont apparus les EJB (Enterprise JavaBeans) J2EE afin de résoudre le problème de discordance d’impédance.
Mais la plupart des développeurs, moi y compris, ont jugé les EJB Entity Beans encombrants et difficiles à utiliser. Et donc nous avons écrit nos propres outils ORM. Des dizaines de ces ORM sont proposés en frameworks ORM open-source. Un ORM (object-relational mapping) permet d’associer des données relationnelles à des objets Java dans XML. La figure 1 mappe la table PEOPLE de la figure 2 à la classe Java Person de la figure 3. Important : la classe Person est un POJO (Plain Old Java Object). Un POJO est essentiellement une structure de données dépourvue de toute logique de gestion. Les ORM fournissent des API qui peuplent les POJO à partir des requêtes du genre SQL. Vous pouvez ensuite utiliser d’autres méthodes ORM pour apporter des ajouts, des modifications et des suppressions aux POJO persistants dans la base de données.
Parmi les dizaines d’ORM disponibles, j’ai utilisé Hibernate (hibernate.org), OJB (Object Relational Bridge) d’Apache – db.apache.org/ojb) et iBatis (ibatis.apache.org). OJB est l’un des quelques frameworks ORM open-source qui implémentent la spécification JDO (Java Data Objects), JSR 12 (jcp.org/en/jsr/detail?id=12).
Il semble bien que le fait d’utiliser un ORM qui met en oeuvre une API standard soit une bonne idée : il est bon de savoir que vous pouvez remplacer une implémentation JDO par une autre. Sachez cependant qu’il existe deux types de standard : un ratifié par une organisation et un autre qui s’impose par suite de son acceptation massive dans une industrie. Une API standardisée par une organisation n’est pas forcément intéressante, comme nous l’avons vu avec EJB 1 et EJB 2. Un standard ORM ratifié plus récent est l’API Java Persistence, qui est une sous-spécification de JSR 220 Enterprise JavaBeans (jcp.org/en/ jsr/detail?id=220). D’après le responsable de la spécification JSR 220, la mise en oeuvre d’Hibernate a eu une influence importante sur EJB 3.0 (le créateur d’Hibernate, Gavin King, fait partie de l’équipe JSR 220). Hibernate 3.2 offre deux API : JPA et Hibernate, cette dernière étant un superensemble de JPA.
A noter que vous pouvez configurer les conteneurs J2EE EJB pour utiliser Hibernate 3.2. Aujourd’hui, EJB 3.0 est en train de regagner la confiance que lui avaient fait perdre les versions 1.0 et 2.0, principalement parce que 3.0 supporte le développement POJO. Malheureusement, la plupart des sites i5 ne pourront pas utiliser EJB 3.0 parce qu’il exige la présence de WAS 6.1. Hibernate est, de loin, le leader des ORM. En mars 2007, la version 3 d’Hibernate a été téléchargée 1,3 millions de fois, et on peut trouver plus d’une dizaine de livres, des centaines d’articles et une grande variété de formations. Hibernate, OJB et la plupart des autres frameworks ORM génèrent dynamiquement des instructions SQL select, insert, update et delete – à l’exception notable de iBatis. L’autogénération de SQL par Hibernate et OJB leur permet de travailler avec une grande variété de bases de données sans modification importante de SQL. Cependant, si vous voulez assumer tout le SQL d’une application, iBatis est l’ORM qu’il vous faut. Avec iBatis, vous écrivez le SQL vous-mêmes (figure 4).
L’exigence iBatis pour SQL est une arme à double tranchant : elle vous permet de supporter des bases de données héritées, de faire des appels de procédures stockées et de régler la performance avec SQL, mais elle demande davantage de travail de préparation et de manipulation du SQL lorsque votre base de données change. Je suis toujours parvenu à utiliser Hibernate avec d’anciennes bases de données, mais il est plus difficile de trouver comment utiliser Hibernate avec des bases de données bizarres qu’avec iBatis. En bref, Hibernate est bien plus configurable et doté de fonctions que iBatis, mais ce dernier peut s’apprendre plus rapidement.
Téléchargez cette ressource
Sécuriser Microsoft 365 avec une approche Zero-Trust
Découvrez comment renforcer la cyber-résilience de Microsoft 365 grâce à une approche Zero-Trust, une administration granulaire et une automatisation avancée. La technologie Virtual Tenant de CoreView permet de sécuriser et simplifier la gestion des environnements complexes, tout en complétant vos stratégies IAM, y compris dans les secteurs réglementés.
Les articles les plus consultés
- Activer la mise en veille prolongée dans Windows 10
- Cybersécurité Active Directory et les attaques de nouvelle génération
- N° 2 : Il faut supporter des langues multiples dans SharePoint Portal Server
- Partager vos images, vidéos, musique et imprimante avec le Groupe résidentiel
- Et si les clients n’avaient plus le choix ?
Les plus consultés sur iTPro.fr
- Cybersécurité française 2026 : explosion des startups, ralentissement des scale-ups et virage stratégique de l’IA
- Le Cercle de l’Innovation décerne le Prix de l’Innovation du Public 2026
- Avec l’IA agentique, la robustesse des SI redevient stratégique
- Les erreurs du secteur bancaire dans son approche IA
Articles les + lus
Couchbase lance AI Data Plane pour industrialiser l’IA agentique
Windows 11 : Microsoft généralise le point-in-time restore pour accélérer la remise en service des PC
Computex 2026 : 5 signaux forts à retenir
La chaîne d’approvisionnement, point de rupture récurent du SI
Microsoft Build 2026 : contre-offensive des modèles maison face à OpenAI et Anthropic
À la une de la chaîne Tech
- Couchbase lance AI Data Plane pour industrialiser l’IA agentique
- Windows 11 : Microsoft généralise le point-in-time restore pour accélérer la remise en service des PC
- Computex 2026 : 5 signaux forts à retenir
- La chaîne d’approvisionnement, point de rupture récurent du SI
- Microsoft Build 2026 : contre-offensive des modèles maison face à OpenAI et Anthropic
