Exercice 2 - Configuration de la connexion à la base de données⚓︎
Nous allons maintenant configurer la datasource.
Schéma
Il faut bien sûr pour cela qu'une base de données soit accessible. On supposera ici qu'elle l'est sur localhost
sur le port 3306
. On suppose également qu'un schéma gestion_notes
est créé sur cette instance. Il a normalement été créé dans le TD précédent.
1. Configuration du pilote⚓︎
Il faut commencer par installer le pilote MySQL. Par défaut, il n'y a que le pilote h2. Pour cela, dans le dossier 📂<WILDFLY_HOME>/modules/system/layers/base/com
, créer un dossier 📂mysql
puis un dossier 📂main
dans celui-ci. Il y a deux choses à mettre dans ce dossier :
-
Le connecteur java-mysql (jar)
Pilote pour MySQL
Nous l'avons déjà téléchargé dans le TD précédent.
Pour rappel, il est disponible ici (https://dev.mysql.com/downloads/connector/j/).
À ce lien, sélectionner "Plateform Independent", puis télécharger le zip (il n'est pas nécessaire de se connecter). Dans ce zip, seul le fichier 📄
mysql-connector-java-a.b.c.jar
nous interesse,.Le conecteur 📄
mysql-connector-java-a.b.c.jar
doit être placé dans 📂<WILDFLY_HOME>/modules/system/layers/base/com/mysql/main
(il suffit normalement de créer les dossiers 📂mysql
et 📂main
). -
Le fichier
module.xml
Créer ce fichier dans le dossier, en recopiant le contenu ci-dessous dans son contenu (:warning::warning:attention à adapter la version du jar:warning::warning:) :
📄 module.xml 1 2 3 4 5 6 7 8 9
<module xmlns="urn:jboss:module:1.5" name="com.mysql"> <resources> <resource-root path="mysql-connector-java-8.0.28.jar" /><!--(1)!--> </resources> <dependencies> <module name="javax.api"/> <module name="javax.transaction.api"/> </dependencies> </module>
-
:warning::warning:
Il faut indiquer ici le même nom que celui du jar présent dans ce dossier.
:warning::warning:
-
-
Dans la console d'administration.
Dans la console d'administration, aller dans :fontawesome-solid-bars:
Configuration > Subsystems > Datasources & Drivers > JDBC Drivers
.Il ne doit pour l'instant n'y en avoir qu'un seul :
h2
.Cliquer sur "Add JDBC Driver", puis remplir :
- Driver Name :
mysql
- Driver Module Name :
com.mysql
Le reste est laissé vide. Cliquer enfin sur
Add - Driver Name :
Si besoin, modification manuelle du fichier 📄standalone.xml
Plutôt que d'utiliser la console d'administration, il est possible de faire ces mêmes modifications directement depuis un fichier XML.
Pour cela, ouvrir le fichier 📄standalone.xml
:
📄standalone.xml
En ouvrant l'arborescence du serveur WildFly dans la vue server, dans :material-file-tree:Filesets > Configuration File
, on constate la présence du fichier 📄standalone.xml
, qui permet de configurer le serveur :
Dans ce fichier, chercher la balise <drivers>
. Elle contient uniquement le driver h2
pour le moment. Nous allons ajouter notre driver MySQL
. Pour cela, recopier le code suivant :
📄 standalone.xml | |
---|---|
1 |
|
2. Configuration de la source de données⚓︎
Nous pouvons maintenant crééer la datasource.
Toujours depuis la console d'administration, après avoir redémarré le serveur Wildfly, aller dans :fontawesome-solid-bars:Configuration > Subsystems > Datasources & Drivers > Datasources
, et cliquer sur "Add Datasource". Il y a 6 écran de configuration :
- Sélectionner "MySQL".
- Indiquer
MySqlGestionNotesJPA
comme Name etjava:/MySqlGestionNotesJPA
comme JNDI Name. - Ne rien changer.
- Indiquer
jdbc:mysql://localhost:3306/gestion_notes
dans Connection URL (il faut adapter cette URL si le port est différent, et si le schéma créé sur la BDD n'est pasgestion_notes
), et saisir le User Name et l'éventuel Password. - Tester la connexion.
- Valider la création de la datasource.
Si besoin, modification manuelle du fichier 📄standalone.xml
Nous avons fait la même opération que lorsque nous avions modifié les fichiers 📄server.xml
et 📄context.xml
sur le serveur Tomcat.
Ici, on aurait également pu modifier directement le fichier 📄standalone.xml
, plutôt que d'utiliser la console d'administration.
Dans ce fichier de configuration, vous pouvez constater l'apparition d'une balise <datasource>
référencant la source MySqlGestionNotesJPA
.