0% ont trouvé ce document utile (0 vote)
27 vues3 pages

Atelier Java: Implémentation Strategy Pattern avec MySQL

Le document présente un atelier sur le design pattern Strategy en Java, détaillant la création d'un projet Maven avec des packages spécifiques pour la gestion des étudiants. Il décrit la mise en place d'une interface et de classes pour gérer les opérations sur les étudiants, ainsi que la transition d'une base de données Collection vers MySQL. Des instructions précises sont fournies pour la configuration de la base de données et l'implémentation des méthodes nécessaires.

Transféré par

Nessaiba WADI
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
27 vues3 pages

Atelier Java: Implémentation Strategy Pattern avec MySQL

Le document présente un atelier sur le design pattern Strategy en Java, détaillant la création d'un projet Maven avec des packages spécifiques pour la gestion des étudiants. Il décrit la mise en place d'une interface et de classes pour gérer les opérations sur les étudiants, ainsi que la transition d'une base de données Collection vers MySQL. Des instructions précises sont fournies pour la configuration de la base de données et l'implémentation des méthodes nécessaires.

Transféré par

Nessaiba WADI
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

1

Département Génie Informatique


IAGI-2
Atelier - Design Patterns –Strategy
Partie 1
1. Créer un nouveau projet :
a. Name: strategy-design-pattern-project,
b. Language: java,
c. Build System: Maven.
2. Dans le fichier [Link] ajouter la dépendance lombok :
[Link]
3. Créer les packages suivants :
a. database
b. dao
c. business
d. representation
4. Dans le package database créer une interface DatabaseFacade en ajoutant le prototype de la
méthode getDatabase. Dans le même package créer la classe CollectionDatabase qui implémente
l’interface DatabaseFacade.
5. Dans le package dao créer une interface EtudiantDAO en ajoutant les prototypes des méthodes
suivantes :
a. save(Etudiant etudiant)
b. update(Etudiant etudiant)
c. delete(Etudiant etudiant)
d. findAll()
e. findById(Long id)
f. findByEmail(String email)
g. …
6. Dans le même package créer 2 sous packages :
a. Dans le premier sous package (entities) créer l’entité Etudiant [Long id, String
name, String email, String password … ] en ajoutant les annotations suivantes :
i. @Data
ii. @NoArgsConstructor
iii. @AllArgsConstructor
iv. @Builder
b. Dans le deuxième sous package (repositories) créer la classe
EtudiantDAOCollection qui implémente l’interface EtudiantDAO.
7. Dans le package business créer une interface EtudiantManagerFacade en ajoutant les prototypes
des méthodes suivantes :
a. checkEmail(String email)
b. save(Etudiant etudiant)
c. update(Etudiant etudiant)
d. delete(Etudiant etudiant)
e. getAll()
f. getById(Long id)
g. getByEmail(String email)
h. …
8. Dans le même package créer la classe EtudiantManager qui implémente l’interface
EtudiantManagerFacade et redéfini les différentes méthodes.
9. Dans le package representation créer la classe de test.
10. Tester les différents services de l’application (utiliser le builder pour créer les différents objects).

BADR HIRCHOUA ([Link]@[Link])


2

Partie II

Dans la deuxième partie, nous voulons changer la base de données Collection par MySQL
1. Dans le package database créer la classe MySQLDatabase qui implémente l’interface
DatabaseFacade.
2. Dans le fichier [Link] ajouter la dépendance de mysql-connector :
[Link]
3. Redéfinir la méthode getDataBase comme suit :
public class MySQLDatabase implements DatabaseFacade {
private String driver = "[Link]";
private String bridge = "jdbc:mysql:";
private String host = "localhost:3306";
private String source = "studentmanager";
private String username = "root";
private String password = "votre-mot-de-passe";
private String url;
@Override
public Object databaseLayer() {
url = bridge + "//" + host + "/" + source;
Connection connection;
try {
connection = [Link](url, username, password);
if (connection!= null) {
[Link]("Connected");
}
} catch (SQLException e) {
throw new RuntimeException(e);
}
return connection;
}
}
4. Dans le package repositories créer la classe EtudiantDAOMySQL qui implémente l’interface
EtudiantDAO et redéfinie les différentes méthodes.
a. Commencer par injecter la dépendance suivante : private DatabaseFacade database
b. Ajouter un attribut de type connection : private Connection connection;
c. Créer en suite le constructeur avec le paramètre DatabaseFacade database:
public EtudiantDAOMySQL(DatabaseFacade databaseFacade) {
[Link] = databaseFacade;
[Link] = (Connection) [Link]();
}
d. La redéfinition de la méthode save(Etudiant etudiant) est la suivante :
@Override
public Etudiant save(Etudiant etudiant) {
String query = "INSERT INTO student VALUES (" + [Link]() + ",'" + [Link]() … )";
try {
Statement sql = [Link]();
int rs = [Link](query);
return etudiant;
} catch (Exception e) {
[Link]("Erreur d'inscription: " + [Link]());
return null;
}
}

BADR HIRCHOUA ([Link]@[Link])


3

5. Créer une base de données avec le nom studentmanager, et créer la table student comme
suit :
• Create database studentmanager ;
• CREATE TABLE `studentmanager`.`student` ( `idStudent` DOUBLE NOT NULL,
`name` VARCHAR(45) NOT NULL, `email` VARCHAR(45) NOT NULL, `password`
VARCHAR(45) NOT NULL, UNIQUE INDEX `email_UNIQUE` (`email` ASC)
VISIBLE, PRIMARY KEY (`idStudent`));

6. Dans la classe de test changer la stratégie de base de données collection par MySQL, et tester
l’application.

BADR HIRCHOUA ([Link]@[Link])

Vous aimerez peut-être aussi