From daef2bbf1a4f8ec072e385a0f284983d26a68415 Mon Sep 17 00:00:00 2001 From: Muyue Date: Tue, 14 Oct 2025 17:07:19 +0200 Subject: [PATCH] del file useless --- .gitignore | 5 +- data/704e7897-8f42-4007-b5e2-5c43a1237a23.md | 96 -------------------- data/uuid_map.json | 3 - 3 files changed, 4 insertions(+), 100 deletions(-) delete mode 100644 data/704e7897-8f42-4007-b5e2-5c43a1237a23.md delete mode 100644 data/uuid_map.json diff --git a/.gitignore b/.gitignore index f281873..85aacff 100644 --- a/.gitignore +++ b/.gitignore @@ -111,4 +111,7 @@ ehthumbs.db Thumbs.db # Claude Code -.claude \ No newline at end of file +.claude + +# Data +data/* diff --git a/data/704e7897-8f42-4007-b5e2-5c43a1237a23.md b/data/704e7897-8f42-4007-b5e2-5c43a1237a23.md deleted file mode 100644 index d481121..0000000 --- a/data/704e7897-8f42-4007-b5e2-5c43a1237a23.md +++ /dev/null @@ -1,96 +0,0 @@ -# TD/TP 5 - Persistance Objet-Relationnel - -## Objectif - -Implémenter un système de persistance objet-relationnel pour gérer des livres (Book) et leurs éditeurs (Publisher) en utilisant une base de données Derby. - -## Architecture - -Le projet suit le pattern Data Mapper pour séparer la logique métier de la persistance: - -- **Classes du domaine**: objets métier (Book, Publisher) -- **Classes Mapper**: gestion de la persistance (BookMapper, PublisherMapper) -- **Interfaces**: contrats pour les objets persistants (DomainObject, Mapper) -- **Utilitaire DB**: gestion de la connexion à Derby - -## Structure du code - -```mermaid -classDiagram - class DomainObject { - <> - +getId() Object - +setId(Object id) void - } - - class Mapper~T~ { - <> - +insert(T newObject) Object - +find(Object oid) T - +findMany(Object criterion) Set~T~ - +update(T objToUpdate) void - +delete(T objToDelete) void - +deleteAll() void - } - - class Book { - -String isbn - -String title - -String author - -float price - +getId() Object - +setId(Object id) void - +getIsbn() String - +getTitle() String - +getAuthor() String - +getPrice() float - } - - class BookMapper { - -DB db - +insert(Book newBook) Object - +find(Object isbn) Book - +findMany(Object authorName) Set~Book~ - +update(Book bookToUpdate) void - +delete(Book bookToDelete) void - +deleteAll() void - } - - class DB { - +getConnection() Connection - +createTable(String sql) void - } - - DomainObject <|.. Book - Mapper <|.. BookMapper - BookMapper --> Book : persiste - BookMapper --> DB : utilise -``` - -## Travail à réaliser - -### Partie 1: Persistance de Book -1. Compléter `Book.getId()` et `Book.setId()` (DomainObject) -2. Implémenter les méthodes CRUD dans `BookMapper` -3. Définir le SQL de création de table dans `BookMapper.createTableStmt` - -### Partie 2: Association Book-Publisher -1. Créer `PublisherMapper` -2. Modifier `Book` pour ajouter un attribut `Publisher` -3. Modifier `BookMapper` pour gérer l'association -4. Gérer les règles: sauvegarde en cascade, suppression en cascade - -## Commandes Maven - -```bash -mvn clean # Nettoyer les compilations -mvn compile # Compiler le projet -mvn test # Exécuter les tests -``` - -## Base de données - -- Nom: Roux -- SGBD: Apache Derby 10.16.1.1 -- Port: 1527 -- Driver: `jdbc:derby://localhost:1527/Roux` diff --git a/data/uuid_map.json b/data/uuid_map.json deleted file mode 100644 index 09afeda..0000000 --- a/data/uuid_map.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "0": "704e7897-8f42-4007-b5e2-5c43a1237a23" -} \ No newline at end of file