🚀 Preuves R3.07

Titre : R3.07 - SQL dans un langage de programmation : Gestion et persistance des données

▶︎ Les apprentissages critiques

1. AC14.01 | Mettre à jour et interroger une base de données relationnelle (en requêtes directes ou à travers une application) 2. AC14.02 | Visualiser des données 3. AC14.03 | Concevoir une base de données relationnelle à partir d’un cahier des charges

▶︎ Analyse et réflexivité sur vos actions (à compléter max 1 page par question)

<aside> 💡 Quelles ont été vos démarches, prises de décisions, degré d'implication et d'autonomie ?

</aside>

<aside> 💡 Quelles ressources avez vous choisies et combinées pour réaliser vos tâches et résoudre les problèmes rencontrés dans cette SAé ?

</aside>

<aside> 💡 En vous appuyant sur vos traces, justifiez la maitrise des apprentissages visés, ainsi que la prise en compte des composantes essentielles pour le développement de vos compétences.

</aside>

<aside> đź’ˇ

Quelles ressources vous manquent pour atteindre la compétence abordée par cette SAé ? Si c'était à refaire que changeriez-vous ?

</aside>

▶︎ Réalisations

📌 Démarches, prises de décisions, implication et autonomie

Dans cette matière, ma démarche a consisté à faire évoluer une application bancaire d'une gestion "bas niveau" vers une architecture industrialisée. Au début du projet, j'ai utilisé JDBC pour gérer manuellement les connexions et les requêtes. J'ai dû prendre des décisions importantes en matière de sécurité, comme l'utilisation de PreparedStatement pour prévenir les injections SQL et l'usage d'un fichier .env pour gérer les identifiants de connexion de manière autonome et sécurisée.

Par la suite, j'ai pris l'initiative de migrer vers JPA (Hibernate). Cette décision visait à mieux gérer la complexité en transformant le modèle relationnel en modèle objet. J'ai géré l'ensemble du cycle de vie des données, depuis la configuration de l'environnement sous Docker jusqu'à l'implémentation de la logique métier côté base de données avec des procédures stockées pour optimiser les virements bancaires (TP5).


📌 Ressources choisies et combinées

Pour mener à bien les différents TP, j'ai combiné plusieurs ressources académiques et techniques.

Tout d’abord, nous pouvons retrouver le supports de cours et TP (JDBC/JPA/DAO) indispensable pour comprendre les patrons de conception et le mapping objet-relationnel.

On retrouve ensuite la documentation de Docker & Docker-Compose pour comprendre l’utilité et le fonctionnement des Dockerfile et Docker Compose, permettant de gérer le déploiement de la base de données PostgreSQL de manière reproductible.

Il y a également eu Log4j2, permettant d'intégrer des logs (niveaux INFO et WARN) pour tracer les opérations de gestion (ex: "Client trouvé", "Aucun client trouvé") et faciliter la maintenance.

Nous avons utilisé l’outil Maven pour réaliser les différents TP, permettant de gérer les dépendances comme le pilote PostgreSQL et les API Jakarta Persistence.