Année académique: 2023-
2024
Niveau : MASTER 1
MIAGE
RAPPORT
TP2
Participants
ADOU AKOUN
CYRILLE
KOUASSI Enseignant:
ENOUKOU Professeur
AUBIN TCHIMOU
Introduction
L'informatique est une science du traitement de l'information . Elle
utilise les techniques de la collecte, du tri, de la mise en mémoire, du
stockage, de la transmission et de l'utilisation des informations traitées
automatiquement, grâce à des programmes (logiciels) qui sont utilisés
sur un ordinateur. L'informatique est considérée comme le support des
connaissances et des communications. Ainsi, on ne peut parler
d’exécution de programmes informatiques sans parler du génie logiciel
dont l’objet est l’étude de conception, de fabrication, et la maintenance
des systèmes informatiques complexes. En tant qu’étudiants en master
1 MIAGE nous sommes appelé à maitriser divers langage de
programmation comme JavaFX pour la création d’application.
Notre projet TP2 consiste à créer une application structurée
selon le model MVC(Model Vue Contrôleur) utilisant JavaFx
pour l’interface utilisateur et le framework JPA pour la
manipulation des données.
En effet, cetteapplication permattra d’inscire les étudiamnts
dans un semestre parcours puis dans les différentes unité
d’enseignement . Enfin, on créé des évaluations pour évaluer
les étudiants afin de calculer les moyennes pour prendre une
decision d’admission en fin d’année.
Pour réussir notre application nous allons suivre les étapes
dans la table de matières.
Sommaire
I. Présentation des outils de travail
II. Création de la base de données
III.Création du projet
IV.Création des interfaces
V. Connection de la base de données
VI.Création des entités et fonction CRUD
VII.Lancement projet
I. Présentation des outils de travail
Cette application nous permettra de réaliser
nos interfaces graphiques sans écrire de ligne
de code. C’est-à-dire dessiner son design
(donner une vue agréable à l’utilisateur). Celui-
ci génère un fichier de type FXML qui est
interprété par JavaFx.
Ce server contient un système de gestion de
base de donnée (MYSQL) pour la gestion des
données de notre application.Espaces utilisé
pour la création de la base de données
Intellij IDEA est conçu pour
accelerer et optimiser le
developpement de logiciel grace
à des outils intelligents ,une
integration profonde avec les
Frameworks et des
fonctionnalités avancées de
productivité.
II .Création de la base de données
Nous allons créer notre base de données nommée personnes
I. Création I. Création de
Nommer la
Cliquerb base de
ase de
données base
données
de données
La table de la base de données et ses attributs seront génerer automatique par JPA
au lancement de notre application
Grace à la classe personne.
III.Création du projet
.
Cliquez sur l'icône pour ajouter u
On assure d’avoir bien
choisir « JavaFX » dans
liste à gauche et d’avoir
bien renseigner les
champs du projet. Le nom
de notre projet sera «
gestiontp2 » et on clique
sur Next
IV. Création des interfaces
Nous avons utilisé des boutons pour le menu , des imageView pour les images.
En cliquant
En cliquant
En cliquant sur le bouton Liste des Étudints la
liste des étudants inscrit s’affiche.
Lorsqu’on clique sur le bouton Valider après avoir choisir l’évaluation le tableau ci-contre s’affiche
automatiquement
V .Connection de la base de données
Le projet ainsi
créé ,nous allons le lier à
notre base de
donnée .D’abord nous
devons ajouter une
dependences nommée
mysql-connector-java
dans le fichier pom.xml
les fonction CRUD seront dans le contrôleur de notre vue.
Ce bout de code est le
début du fichier
controller. Il permet de
definir les classes et le
type du tableau et ses
conlonnes.
Après avoir copié le chemin
du dossier lib contenant les
fichiers jarn du dossier
JavaFx-sdk ,on le colle dans
le repertoire de notre
projet .
VI.Création des entités et fonction CRUD
Dans ce projet utilisant JPA, nous allons utiliser une implémentation de JPA
nommée « Hibernate » qui facilite le mapping des objets Java aux tables de la
base de données et simplifie les opérations de persistance des données. Ce qui
nous permettra de travailler avec des objets Java plutôt qu'avec des requêtes SQL
directes. Cette étape se divisera en deux étapes: La création des entités (Entity)
La création des fonctions CRUD (Create, Read, Update, Delete)
La création des entités (Entity) Mais avant de poursuivre la création des entités,
on s’assure d’avoir ajouter Hibernate dans les modules du projet, en cliquer sur
le dossier du projet puis sur « F4 » pour ouvrir les paramètre du projet. Ensuite,
on choisis « Modules » dans la liste à gauche, puis sur « + » et on choisis «
Hibernate ».
.
Ce fichier persistence.xml est logé dans le dossier META-INF . c’est dans
ce fichier que nous allons mettre les accès à notre base de données
pour que Hibernate puisse s’y connecter, les mappages des classes
Entity et d’autres propriétés suivi d’autres propriété comme «
hibernate.hbm2ddl » et « hibernate.dialect » comme présenté ci-
dessus.
Quelques exemples de propriétés:JavaFx.persistence.jdbc.driver ,
JavaFx.persistence.jdbc.url
JavaFx.persistence.jdbc.password
JavaFx.persistence.jbdc.user
Ce fichier gère aussi les classes d’entité du projet
Assurons nous aussi
d’avoir ajouter les
dépendances «
javax.persistence » et «
org.hibernate » dans le
fichier « pom.xml » ou via
le gestionnaire de
dépendance
commeprésentéci-
dessous: (et veuillez à
vérifier la compatibilité)
La création des entités (Entity)
Entité(Entity): En JPA (Java Persistence API), une entité est une
classe Java qui est associée à une table dans une base de
données relationnelle. Les entités sont utilisées pour mapper
les données entre les objets Java et les tables de la base de
données, permettant ainsi 30 aux développeurs de manipuler
les données de manière orientée objet. Pour créer nos entité,
nous allons utiliser notre connecteur pour insérer le mappage
des classes (qui sont des tables de notre base de donnée) dans
le fichier de configuration d’Hibenate nommé «
hibernate.cfg.xml », .
les fonction CRUD seront dans le contrôleur de notre vue.
Ce bout de code est le
début du fichier
controller. Il permet de
definir les classes et le
type du tableau et ses
conlonnes.
Fonction CRUD
Fonction « Create »
Fonctionnement de la méthode «
enregistrerAction ».D’abord,nous avons créer
un EntityManagerFactory pour les intances
d’EntityManager qui nous permettra d’
intergir avec la base de données pour une
bonne gestion de la connexion de celle-ci.
Ensuite, nous allons débuter la transaction
avec la méthode « beginTransaction() » de
l’EntityManager. Puis lancer l’enregistrement
de l’objet dans la base avec la méthode «
persist » de l’ l’EntityManager avant de valider
définitivement les modifications dans la base
avec la méthode « commit() » de la classe «
Transaction ». Enfin nous fermons la session
avec la méthode « close() » de la classe «
Session » avant de retourne une valeur
confirmant que notre action a été effectuée
avec succès
Fonction « Update»
Fonctionnement de la méthode «
ModifierAction ». Même processus
que la méthode «EnregistrerAction»
sauf que la méthode «
EntityManager » utilisée est « merge
»
NB: Avant de faire une modification
nous avons selectionné la ligne à
modifier du tableau avec l’instance
SelectPersonne
Fonction « Delete»
Fonctionnement de la
méthode « SuprimerAction
». Même processus que la
méthode «ModifierAction»
sauf que la méthode «
EntityManager » utilisée est
« remove»
NB: Avant de faire une
suppression nous avons
selectionné la ligne à
supprimer du tableau avec
l’instance RemovePersonne
Fonction « Read »
A ce niveau on ne met aucun paramètre
puisque qu’on veut lire le contenu d’une
classe (Entity). Donc nous avons le
même début que les autres fonctions
mais aucune transaction, vu qu’on ne
touche pas à la base de donnée. Nous
allons utiliser la méthode « createQuery
» de la classe « EntityManager » pour
afficher le contenu de la classe «
Personne».
La méthode initialise()
permet de charger les
données dans le tableau
lors du demarrage de
l’application
La méthode
<<Selection()>> permet
de prendre les
informations de la ligne
selectionnée et aficher
ses propriétés dans le
champ de texte afin de
les modifier ou les
supprimer
Ici, nous allons charger notre liste lors du
chargement de notre vue avec la
méthode « initialize ». Ensuite, on affecte
à une variable de type « List » le contenu
de notre classe avec notre méthode «
getAll ».
Notre variable « li » sera transformé en
une variable de type « ObervableList »
pour rendre son contenu dynamique à un
TableView, avant de l’afficher dans notre
tableau avec la fonction « setItems ».
Conclusion
En somme, la combinaison de JavaFX et JPA offre une plateforme
puissante pour le développement d'applications graphiques riches
et interactives, tout en facilitant la persistance des données dans
une base de données relationnelle. JavaFX fournit une interface
utilisateur flexible et moderne, permettant de créer des
applications attrayantes et conviviales, tandis que JPA simplifie la
manipulation des données en permettant de mapper facilement les
objets Java aux tables de la base de données.