del file useless
This commit is contained in:
parent
21f165afb0
commit
daef2bbf1a
5
.gitignore
vendored
5
.gitignore
vendored
@ -111,4 +111,7 @@ ehthumbs.db
|
||||
Thumbs.db
|
||||
|
||||
# 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