Création d'une Application de Gestion des Patients avec Spring & Java

Jun 27, 2024

Création d'une Application de Gestion des Patients avec Spring & Java

Introduction

  • Création d'un projet Spring nommé "hôpital"
  • Utilisation de Java 17
  • Utilisation des dépendances Spring Data JPA et Spring Web
  • Dépendances : Spring Data JPA, H2 Database (en développement), MySQL (production), Spring Web, Thymeleaf, DevTools

Configuration du Projet

  • Création des packages : entity, repository, web
  • Création d'entités JPA : Exemple avec Patient
    • Attributs : id, nom, dateNaissance, malade, score
    • Utilisation de Lombok (@Data), annotations JPA (@Entity, @Id, @GeneratedValue)
  • Création de l'interface PatientRepository en héritant de JpaRepository

Initialisation et Tests

  • Utilisation de CommandLineRunner pour insérer des données de test
  • Techniques pour créer et gérer des entités : constructeur sans paramètres, avec paramètres, pattern Builder
  • Configurations H2 et MySQL dans application.properties
  • Exemple de configuration de MySQL : driver JDBC, URL, username, password

Création d'un Controleur Spring MVC

  • Création de PatientController
    • Injection de PatientRepository via le constructeur avec Lombok (@RequiredArgsConstructor)
    • Méthode pour afficher la liste des patients : index
  • Utilisation de Thymeleaf pour créer des vues dynamiques
    • Configuration de Thymeleaf dans les fichiers HTML
    • Utilisation des boucles Thymeleaf pour afficher la liste des patients
  • Ajout de Bootstrap pour le style
    • Ajout des dépendances Webjars pour Bootstrap
    • Utilisation de classes Bootstrap dans les templates

Pagination et Tri

  • Création de la pagination dans le PatientController
    • Utilisation de Page et Pageable dans Spring Data JPA
    • Passage des paramètres page et size dans les requêtes
    • Mise en place des liens de pagination dans Thymeleaf
  • Affichage conditionnel des éléments actifs avec Thymeleaf

Recherche

  • Création d'une méthode de recherche dans PatientRepository
    • Utilisation de la méthode findByNomContaining ou @Query avec LIKE
    • Adaptation du PatientController pour gérer la recherche
    • Ajout d'un formulaire de recherche dans la vue
    • Gestion des paramètres de recherche dans les requêtes

Suppression

  • Ajout de la suppression des patients
    • Lien de suppression dans la vue
    • Méthode deleteById dans PatientRepository
    • Redirection après suppression
    • Utilisation de JavaScript pour confirmer la suppression (confirm)

Finalisation

  • Intégration des icônes Bootstrap
  • Affichage des messages de confirmation
  • Configuration de la redirection et du maintien de l'état des paramètres
  • Prochaine activité pratique prévue : validation des formulaires, sécurité avec Spring Security

Conclusion

  • Importance de la structuration du développement
  • Méthodologies et bonnes pratiques avec Spring et Thymeleaf
  • Conseil : aborder les exercices avec curiosité et rigueur

Questions et Réponses

  • Discussions sur l'utilisation des annotations Spring
  • Meilleures pratiques pour la suppression et la sécurité
  • Gestion des états et des paramètres dans les vues