del file useless
This commit is contained in:
parent
21f165afb0
commit
daef2bbf1a
3
.gitignore
vendored
3
.gitignore
vendored
@ -112,3 +112,6 @@ Thumbs.db
|
|||||||
|
|
||||||
# Claude Code
|
# Claude Code
|
||||||
.claude
|
.claude
|
||||||
|
|
||||||
|
# Data
|
||||||
|
data/*
|
||||||
|
|||||||
@ -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 {
|
|
||||||
<<interface>>
|
|
||||||
+getId() Object
|
|
||||||
+setId(Object id) void
|
|
||||||
}
|
|
||||||
|
|
||||||
class Mapper~T~ {
|
|
||||||
<<interface>>
|
|
||||||
+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`
|
|
||||||
@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
"0": "704e7897-8f42-4007-b5e2-5c43a1237a23"
|
|
||||||
}
|
|
||||||
Loading…
x
Reference in New Issue
Block a user