Analyse et Implémentation du Backend
avec Spring Boot
1. Introduction
Ce document présente une analyse détaillée du script SQL de création de la base de données
pour une application de gestion de location et de vente de véhicules. Il inclut également une
explication de l’implémentation côté backend en utilisant le framework Spring Boot avec
Oracle comme système de gestion de base de données.
2. Structure de la base de données
La base de données est composée de plusieurs entités principales : UTILISATEUR,
VEHICULE, ANNONCE, LOCATION, ACHAT, TRANSACTION, PAIEMENT, EVALUATION,
PERMIS_CONDUIRE, DOCUMENTS_VEHICULE, NOTIFICATION, IMAGE_VEHICULE. Chaque
table est définie avec des contraintes de clé primaire, de clé étrangère, des contraintes
d'intégrité et des contrôles de validité des données.
2.1 Table UTILISATEUR
Cette table stocke les informations des utilisateurs (clients, prestataires, administrateurs).
Elle contient :
- idUtilisateur : clé primaire générée automatiquement.
- nom, prenom, email : informations personnelles. L’email est unique.
- motDePasse : pour l'authentification.
- dateInscription : date de création du compte.
2.2 Table VEHICULE
Contient les véhicules proposés à la location ou à la vente.
- Chaque véhicule a une marque, un modèle, une immatriculation unique, un numéro de
châssis, un type de carburant, une catégorie, un statut.
- typeOffre détermine s’il s’agit d’une location ou vente.
- Une contrainte vérifie que seuls les prix correspondants à l’offre sont remplis.
2.3 Tables Relationnelles
- LOCATION et ACHAT relient un utilisateur à un véhicule via un contrat.
- TRANSACTION assure le suivi financier des opérations.
- PAIEMENT enregistre les moyens et statuts des paiements.
- EVALUATION permet de noter un service.
- PERMIS_CONDUIRE et DOCUMENTS_VEHICULE permettent d'attacher des documents
justificatifs.
3. Connexion à Oracle avec Spring Boot
Pour se connecter à Oracle avec Spring Boot, on configure le fichier `[Link]` :
[Link]=jdbc:oracle:thin:@//localhost:1521/ORCLPD
B
[Link]=Gestion_vehicules
[Link]=G2025v
[Link]-class-name=[Link]
4. Entités JPA et Repository
Chaque table correspond à une classe @Entity dans Spring Boot. Les relations sont définies
avec des annotations telles que :
- @OneToMany, @ManyToOne, @JoinColumn
- @Enumerated([Link]) pour les champs de type ENUM comme typeOffre ou
statut.
Un Repository est créé pour chaque entité en étendant JpaRepository.
5. Services et Contrôleurs
Les services contiennent la logique métier (ex: publier un véhicule, calculer un montant).
Les contrôleurs REST (annotés avec @RestController) exposent des endpoints (API REST)
pour interagir avec le frontend (publier, chercher, modifier...).
6. Gestion des fichiers (BLOB)
Pour les tables IMAGE_VEHICULE et DOCUMENTS_VEHICULE, les fichiers binaires sont
stockés en BLOB dans Oracle. Spring Boot permet cela via les types byte[] et l’annotation
@Lob.
7. Sécurité et rôles
La table UTILISATEUR_ROLE permet d’associer des rôles aux utilisateurs. On peut
implémenter Spring Security avec des filtres JWT pour sécuriser les endpoints selon le rôle.
8. Conclusion
Ce schéma relationnel bien structuré avec des relations fortes garantit l’intégrité des
données. Spring Boot, combiné à Oracle, offre un cadre robuste pour développer une
application performante de location et de vente de véhicules.