Skip to content

15. Annexes

15.1. Le SGBD MySQL avec Laragon

Les chapitres 10 et 11 de ce document utilisent le SGBD MySQL 8. La façon la plus simple de l'installer sous Windows est d'installer Laragon, un environnement de développement portable qui regroupe notamment MySQL, le client graphique HeidiSQL, un terminal configuré, Apache et PHP. L'auteur l'utilise aussi pour ses cours PHP.

15.1.1. Installation

Laragon se télécharge à l'adresse https://laragon.org. L'installation est classique ; on peut garder le dossier d'installation proposé ([C:\laragon]). Laragon fournit MySQL 8 (la version exacte dépend de celle de Laragon), avec un administrateur [root] sans mot de passe et un serveur qui écoute sur le port 3306 de la machine locale. C'est la configuration supposée par les exemples du document, dont les URL JDBC sont de la forme :

jdbc:mysql://localhost:3306/dbarticles

avec l'utilisateur [root] et un mot de passe vide. Si MySQL a été installé autrement, avec un mot de passe pour [root], il faut le reporter dans les exemples (fichiers [.properties] ou constantes en tête des programmes).

Pour un poste sans Laragon, on peut aussi installer MySQL Community Server depuis https://dev.mysql.com/downloads/mysql/, ou son dérivé libre MariaDB. Les exemples n'ont toutefois été testés qu'avec MySQL 8 : les scripts du chapitre 10 utilisent une collation propre à MySQL 8 ([utf8mb4_0900_ai_ci]), et avec MariaDB il faudrait l'adapter, ainsi que le pilote JDBC (MariaDB fournit le sien).

15.1.2. Lancer et arrêter MySQL

La fenêtre principale de Laragon comporte un bouton Démarrer tout qui lance les serveurs (Apache et MySQL) et un bouton Arrêter qui les arrête. MySQL n'est pas un service Windows lancé au démarrage du poste : il ne tourne que lorsqu'on l'a démarré depuis Laragon, ce qui évite de consommer des ressources quand on ne s'en sert pas. Le menu de Laragon (clic droit dans la fenêtre) permet aussi de ne démarrer que MySQL, et de choisir sa version.

Quand MySQL n'est pas lancé, les programmes des chapitres 10 et 11 échouent avec une exception du pilote JDBC signalant qu'aucune connexion n'a pu être établie ([CommunicationsException] : « Communications link failure ») : c'est la première chose à vérifier en cas d'erreur.

15.1.3. Le client en ligne de commande

Le bouton Terminal de Laragon ouvre un terminal dans lequel les commandes de Laragon sont accessibles, dont le client MySQL en ligne de commande [mysql]. On se connecte au serveur par :

> mysql -u root

puis on tape des ordres SQL terminés par un point-virgule ([show databases;], [use dbarticles;], [select * from articles;]) et [exit] pour quitter. Le client peut aussi exécuter un script SQL, ce que fait le chapitre 10 pour créer ses bases :

1
2
3
> cd java-oct-2026\10-jdbc\sql
> mysql -u root < dbarticles.sql
> mysql -u root < dbimpots.sql

Les scripts recréent entièrement leur base à chaque exécution : on peut les relancer pour revenir à l'état initial des données après les essais.

15.1.4. Le client graphique HeidiSQL

Le bouton Base de données de Laragon lance le client graphique HeidiSQL. Au premier lancement, HeidiSQL propose une session de connexion déjà configurée pour le serveur MySQL de Laragon (hôte [127.0.0.1], utilisateur [root], mot de passe vide, port 3306) ; il suffit de l'ouvrir. On obtient :

  • à gauche, l'arborescence des bases de données du serveur et de leurs tables ;
  • à droite, des onglets qui montrent la structure d'une table, ses données (modifiables directement) et une zone de saisie de requêtes SQL (onglet « Requête »), exécutées par [F9].

Pour créer une base avec un script du chapitre 10, on ouvre le script (menu « Fichier », commande de chargement d'un fichier SQL) dans un onglet de requête, puis on l'exécute ([F9]). On peut aussi créer une base, un utilisateur et ses droits par les menus de HeidiSQL (clic droit sur la connexion / « Créer nouveau » / « Base de données » ; menu « Outils » / « Gestionnaire d'utilisateurs »), mais les scripts SQL ont l'avantage d'être reproductibles et de pouvoir être relancés.

Les IDE savent aussi se connecter à une base de données : IntelliJ IDEA par sa fenêtre « Database », VS Code par une extension comme « SQLTools » ou « MySQL ».

15.1.5. Les bases de données du document

Les chapitres 10 et 11 utilisent les bases suivantes, toutes sur le serveur MySQL local :

Base
Chapitre
Création
[dbarticles]
10
script [10-jdbc/sql/dbarticles.sql] : la table [articles] des exemples JDBC
[dbimpots]
10
script [10-jdbc/sql/dbimpots.sql] : la table [tranches] de la version 6 de l'application [Impots] et l'utilisateur [admimpots]
[hbpremier], [hbarticles], [hbboutique], [hbclients], [hbconcurrence]
11
créées par les programmes eux-mêmes (option [createDatabaseIfNotExist=true] de l'URL JDBC ; tables créées par Hibernate ou par les scripts versionnés)
[hbimpots]
11
créée et remplie par le programme [CreationBase] de la version 7 de l'application [Impots]

Une fois les essais terminés, on peut supprimer une base par l'ordre SQL [drop database nom;], dans le client [mysql] ou dans HeidiSQL.

15.2. Les dépendances Maven utilisées

Le tableau suivant récapitule les bibliothèques utilisées par les projets Maven du document, avec les versions avec lesquelles les exemples ont été testés. Elles sont téléchargées automatiquement depuis Maven Central par la commande [mvn] (ou par l'IDE) lors de la première construction d'un projet, avec les bibliothèques dont elles dépendent : il faut donc un accès à Internet à ce moment-là.

Bibliothèque (groupId:artifactId)
Version
Chapitres
[tools.jackson.core:jackson-databind] (Jackson 3)
3.1.5
5, 6, 12, 13
[org.junit.jupiter:junit-jupiter] (JUnit 6)
6.0.3
6, 10
[org.springframework:spring-context] (Spring Framework)
7.0.9
6, 10, 11, 12
[org.springframework:spring-orm]
7.0.9
11
[com.mysql:mysql-connector-j] (pilote JDBC MySQL)
9.7.0
10, 11
[com.zaxxer:HikariCP] (pool de connexions)
7.0.2
10, 11
[ch.qos.logback:logback-classic] (journalisation)
1.5.38
10, 11
[org.hibernate.orm:hibernate-core] (Hibernate ORM)
7.4.5.Final
11
[org.eclipse.angus:angus-mail] (Jakarta Mail)
2.0.3
12
[org.springframework.boot:spring-boot-starter-parent] et [spring-boot-starter-webmvc] (Spring Boot)
4.1.1
13

Les greffons Maven utilisés sont [maven-compiler-plugin] 3.15.0, [maven-surefire-plugin] 3.5.6 (exécution des tests), [exec-maven-plugin] 3.5.1 ([mvn exec:java]) et [spring-boot-maven-plugin] 4.1.1 ([mvn spring-boot:run]). Les projets de l'application [Impots] des chapitres 10 à 13 dépendent en outre des modules [exemples.impots:impots-dao], [impots-metier] et [impots-ui] (version 5.0), qu'il faut avoir installés dans le dépôt local par la commande [mvn install] tapée dans le dossier [06-architectures/ImpotsV5] (chapitre 6).