Description de la problématique
Ce chapitre présente la partie arrière d’une application avec une base SQL. Un chapitre dédié traitera de l’équivalent avec les bases NoSQL. Nous utilisons SQL avec des applications qui s’appuient sur une base de données historiquement SQL ou avec des applications qui changeront peu. En effet, la complexification d’une application basée sur une base de données relationnelle est à mettre en regard avec l’utilisation directe d’une base NoSQL.
Pour une base SQL, un ORM (Object Relational Mapping) est un outil qui permet de passer d’un modèle logique objet vers un modèle physique relationnel. Il en existe plusieurs comme Hibernate, MyBatis mais le plus utilisé est Hibernate qui est souvent couplé avec JPA. ORM Hibernate
JPA est une API Java qui s’appuie sur une implémentation d’un ORM, nous utilisons JPA avec Hibernate. Hibernate apporte des fonctionnalités supplémentaires. Les annotations et API Hibernate ne sont utilisées que si les fonctionnalités dont on a besoin ne sont pas disponibles par JPA. JPA
L’ORM fait le lien entre la base de données et les objets Java de plus bas niveaux que l’on regroupe dans la couche dite « couche de domaine métier ».
Pour les cas simples, l’ORM gère le SQL pour les échanges avec la base de données mais il est possible...